如何在包含SUM聚合的SQL查询中显示ID(DocEntry)字段的值
你可以直接在SELECT查询列表中添加DocEntry字段,两种实现方式可选:
方案1 适配当前单DocEntry查询场景
你已经通过WHERE固定了仅查询DocEntry为100的记录,所有聚合结果都属于同一个DocEntry,直接添加字段即可:
SELECT DocEntry AS id, SUM(LineTotal) AS sum_LineTotal, SUM(VatSum) AS sum_VatSum, SUM(GTotal) AS sum_GTotal FROM CSI1 WHERE DocEntry = '100'
如果你的数据库开启了严格SQL模式(如MySQL的only_full_group_by)该写法可能报错,建议使用方案2。
方案2 支持多DocEntry批量汇总(通用性更强)
通过GROUP BY对DocEntry字段分组,既可满足你当前单条查询的需求,后续需要查询多个DocEntry的汇总时也无需大改逻辑:
SELECT DocEntry AS id, SUM(LineTotal) AS sum_LineTotal, SUM(VatSum) AS sum_VatSum, SUM(GTotal) AS sum_GTotal FROM CSI1 WHERE DocEntry = '100' -- 也可以移除该条件查询全表所有DocEntry的汇总 GROUP BY DocEntry
两种写法返回的结果完全一致,推荐优先使用通用性更强的方案2。
内容的提问来源于stack exchange,提问作者LewoSoft
相关产品推荐
相关产品推荐

