我原来的查询:
SELECT location, Item, SUM(TxQty) AS Total
FROM tblimInvTxHistory
WHERE TxDate > '2022-01-01' AND TxCode IN ('COSHIP', 'SHIP')
GROUP BY location, Item
ORDER BY 2
这些是我得到的结果,并且经过验证是正确的:
地点 | 项目 | 总计 |
---|---|---|
02 | 0103 06 10 | 10.00 |
02 | 0103 06 13 | 10.00 |
02 | 0105 08 14 | 4.00 |
01 | 0107-12-12 | 41.00 |
04 | 0107-12-12 | 7.00 |
02 | 0107-12-12 | 5.00 |
03 | 0107-12-12 | 4.00 |
05 | 0107-12-16 | 2.00 |
01 | 0107-12-16 | 14.00 |
04 | 0107-12-16 | 2.00 |
02 | 0107-12-8 | 1.00 |
04 | 0107-12-8 | 3.00 |
03 | 0107-12-8 | 1.00 |
01 | 0107-12-8 | 9.00 |
01 | 0107-16-12 | 4.00 |
04 | 0107-16-16 | 5.00 |
02 | 0107-16-16 | 4.00 |
05 | 0107-16-16 | 2.00 |
01 | 0107-16-16 | 31.00 |
03 | 0107-16-16 | 1.00 |
我的问题是我可以使用某种 HAVING 子句或添加到此查询中的内容,以便它只输出特定项目的位置实例 > 3 的行吗?
我永远无法在不出现 SSMS 错误的情况下完成任何工作。
理想情况下,我希望此输出中类似项目的位置实例数量总计超过 3。
好的,我假设您想要的只是从上面的结果中选择给定位置和项目出现次数超过 3 次的行。如果是这种情况,这将解决您的问题:
SELECT location, Item, SUM(TxQty) as Total, count(*) as Counter
FROM tblimInvTxHistory
WHERE TxDate > '2022-01-01' and TxCode in ('COSHIP','SHIP')
GROUP BY location, Item
HAVING counter > 3
ORDER BY 2
如果这不是您想要的,正如我在评论中所说,请提供预期结果或澄清