あなたはこのような何か行うことができます。
declare @productattribute as table(productattributeID int,section varchar(20),keyid int,productId int,value varchar(20))
declare @AvailableAttribute as table(attributeID int)
insert into @productattribute values(1,'a',10,20,'v')
insert into @productattribute values(2,'a',10,20,'v')
insert into @productattribute values(3,'a',10,20,'v')
insert into @productattribute values(4,'b',150,208,'vb')
insert into @productattribute values(5,'b',150,208,'vb')
insert into @productattribute values(6,'b',150,208,'vb')
insert into @productattribute values(7,'a',8,20,'v')
insert into @productattribute values(8,'a',10,19,'v')
insert into @AvailableAttribute values(20)
insert into @AvailableAttribute values(20)
insert into @AvailableAttribute values(20)
insert into @AvailableAttribute values(208)
insert into @AvailableAttribute values(208)
insert into @AvailableAttribute values(208)
insert into @AvailableAttribute values(20)
insert into @AvailableAttribute values(19)
select * from @productattribute
delete from @productattribute where productattributeID not in
(
select MIN(productattributeID) from @productattribute
where exists
(
select * from
(select section,keyid,productID,value,attributeID
from @productattribute inner join @AvailableAttribute on attributeID = productId
group by attributeID,section,keyid,productId,value) X
where X.attributeID=attributeID and X.keyid=keyid and X.productId=productId and X.section=section and X.value=value
) group by section,keyid,productId,value
)
select * from @productattribute
を