如何修改SQL查询以排除分组后PayAmount总和为0的记录
解决方案
要排除分组后PayAmount总和为0的记录,需要在分组后使用HAVING子句过滤聚合结果(WHERE子句仅能过滤分组前的单行数据,无法处理聚合计算后的结果)。修改后的查询语句如下:
SELECT Descr, Chg, SUM(PayAmount) AS TotalPayAmount, AssocChgID FROM tmpTable t GROUP BY t.Descr, t.Chg, t.AssocChgID HAVING SUM(PayAmount) != 0
说明
HAVING SUM(PayAmount) != 0会筛选出分组后PayAmount总和不为0的记录,直接剔除总和为0的分组行。- 给聚合后的字段添加别名
TotalPayAmount,能让结果列的含义更清晰(该步骤可选,但推荐使用)。
执行上述查询后,仅会返回符合要求的记录:
Descr Chg TotalPayAmount AssocChgID AMFA 0 20 9
内容的提问来源于stack exchange,提问作者user7496931
相关产品推荐
相关产品推荐

