我有下表...
orderID | itemID
---------------------
100 3425
100 3432
102 4443
102 8754
102 3425
103 6511
103 1176
103 3584
107 4967
109 0067
现在我想要查询以下内容......
返回每个itemID
的{{1}}个数,但仅适用于每orderID
个订单包含3个或更多订单的OrderID
个
使用单个查询,找到orderID
的所有orderID
,并列出这些itemID 3425
的所有itemID
。
对于我试过的第一个......
orderID
但它没有给出理想的结果....我是T-SQL的新手,请帮助......
答案 0 :(得分:2)
<击> 撞击>
<击>1和2的组合查询。
SELECT OrderID
FROM tableName
GROUP BY OrderID
HAVING COUNT(*) >= 3 AND
SUM(CASE WHEN ItemID = 3425 THEN 1 ELSE 0 END) >= 1
击> <击> 撞击>
更新1
如果这两个问题不同,
问题1
SELECT OrderID
FROM tableName
GROUP BY OrderID
HAVING COUNT(*) >= 3
问题2
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT OrderID
FROM tableName
GROUP BY OrderID
HAVING SUM(CASE WHEN ItemID = 3425 THEN 1 ELSE 0 END) >= 1
) b ON a.OrderID = b.OrderID