我有一张表格,其中包含具有不同媒体ID的产品。大多数产品都有许多媒体ID,如下所示:
ISISProductCode ISISMediaId
010015.000.000 9
010015.000.000 16
010015.000.000 10
010015.000.000 11
010015.000.000 12
如何找到只有1个介质ID的产品。我尝试了下面的查询,但所有带回来的产品都是媒体ID为10的产品,但不会带回媒体ID为10的产品。
select *
from dbo.Product
join dbo.Item
on dbo.Item.ISISStyleId = dbo.Product.ISISStyleId
where ISISMediaId = '10'
order by ISISProductCode
答案 0 :(得分:3)
按ISISProductCode
分组并统计ISISMediaId
中10
以外的所有having
子句。
select ISISProductCode
from dbo.Product
join dbo.Item on dbo.Item.ISISStyleId = dbo.Product.ISISStyleId
group by ISISProductCode
having sum(case when ISISMediaId <> '10' then 1 else 0 end) = 0
order by ISISProductCode