SQL SSMS Select 子句具有相同字段的 2 个 where 函数

Cod*_*Bob 1 sql sql-server group-by where-clause

我想找到在同一次购买中同时购买了一块水果和一块巧克力的顾客。我的数据如下所示:

ID         purchase_date    product
22212      2021-06-03       Fruit
111999     2021-06-03       Fruit
111999     2021-06-03       Chocolate
56727      2019-05-03       Bread
30726      2019-05-03       Fruit
30761      2019-05-03       Chocolate
53899      2019-05-03       Fruit
Run Code Online (Sandbox Code Playgroud)

我要这个:

  ID         purchase_date
  111999     2021-06-03
Run Code Online (Sandbox Code Playgroud)

我尝试过带有 where 子句的 select 函数,但它没有返回任何记录。有任何想法吗?

SELECT ID, purchase_date
From dbo.mytable
where product='Fruit' AND product='Chocolate'
Group by ID, purchase_date
Run Code Online (Sandbox Code Playgroud)

编辑-有谁知道我如何找到只在交易中购买水果的人?

D-S*_*hih 5

如果我理解正确的话,你可以尝试编写聚合条件函数HAVING

SELECT ID,purchase_date    
FROM dbo.mytable
GROUP BY  ID,purchase_date    
HAVING 
    COUNT(CASE WHEN product='Fruit' THEN 1 END) > 0 
AND
    COUNT(CASE WHEN product='Chocolate' THEN 1 END) > 0 
Run Code Online (Sandbox Code Playgroud)