如何在OrderDetails
?
例如,如果我有4个订单:
order id: 11000 contains: p1, p3, p5, p9
order id: 12000 contains: p1, p4, p5, p8
order id: 13000 contains: p2, p3, p5, p7
order id: 14000 contains: p1, p3, p5, p8
order id: 15000 contains: p2, p3, p6, p9
我想选择包含p1和p9
的订单ID预期结果:11000,12000,14000
如何在SQL Server中执行此操作?
答案 0 :(得分:0)
您可以使用以下内容:
SELECT id
FROM OrderDetails
WHERE Product IN ('p1','p9')
GROUP BY id
HAVING COUNT(DISTINCT Product) = 2
获取满足条件集的OrderDetails
PK值。
修改强>
要获取PK值的计数,可以将上述查询包装在子查询和COUNT
中:
SELECT COUNT(*)
FROM (
SELECT id
FROM OrderDetails
WHERE Product IN ('p1','p9')
GROUP BY id
HAVING COUNT(DISTINCT Product) = 2) AS t