如何选择仅在没有子查询的情况下购买A和B的客户

时间:2014-03-20 13:42:28

标签: sql tsql where-clause

如何创建一个SQL查询,显示购买产品A的人以及在不使用子查询的情况下购买产品B的人员。现在我正在尝试Where Product IN ('A' , 'B' ),因为我还需要那些信息。有任何想法吗?现在我得到任何A和任何B&。我希望它看起来像

JIM 03/20/2014 Product A
JIM 03/20/2014 Product B

并排除任何不同时购买的人。 它目前看起来像

SELECT First, Last, Date, Product
From TABLE1
Where (Date = @Today) AND (Product IN ('A' and 'B'))

(A和B是产品表中的唯一选项)

1 个答案:

答案 0 :(得分:2)

使用grouphaving条件,同时要求购买两种产品:

SELECT First, Last, Date
From TABLE1
Where Date = @Today
AND Product IN ('A', 'B')
GROUP BY First, Last, Date
HAVING COUNT(DISTINCT Product) = 2

关键是将DISTINCT添加到COUNT(),这会将简单交易数量的结果更改为购买的不同产品的数量。