SQL查询仅包含一个条件的记录

时间:2013-11-29 11:50:29

标签: sql

我有一张表格,其中包含具有不同媒体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

1 个答案:

答案 0 :(得分:3)

ISISProductCode分组并统计ISISMediaId10以外的所有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