使用和条件创建具有两个值的sql select查询过滤器

时间:2016-02-09 12:17:42

标签: sql-server

这是我的表:

Srlno   Item Code   Category Code   
1       BT/000001     CLR   
2       BT/000001     SIZ   
3       BT/000001     WAT   
1       BT/000002     Swt   
2       BT/000002     Mol   
3       BT/000002     SIZ   

我使用此查询:

SELECT Item_Code
FROM T_SubCatogoryDtls   
WHERE SubCat_code in (N'SIZ' , N'Swt')
GROUP BY Item_Code

但结果是:

BT/000001
BT/000002

我需要BT/000002,因为此商品代码中的类别代码SizSwt很常见 什么是正确的查询

1 个答案:

答案 0 :(得分:2)

您必须添加HAVING子句:

SELECT Item_Code
FROM T_SubCatogoryDtls   
WHERE SubCat_code in (N'SIZ' , N'Swt')
GROUP BY Item_Code
HAVING COUNT(DISTINCT SubCat_code) = 2

HAVING过滤掉任何Item_Code 代码,即'SIZ' 'Swt'