You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询:如何按PACKLIST_ID分组汇总CUST_ORDER_ID的TOTAL值

按PACKLIST_ID和CUST_ORDER_ID汇总订单总额

原查询返回的是发货明细行,所以同一PACKLIST_ID下会有多个CUST_ORDER_ID的TOTAL记录。要实现按PACKLIST_ID分组,同时汇总同一PACKLIST_ID下相同CUST_ORDER_ID的总额,且不同PACKLIST_ID的相同CUST_ORDER_ID分开统计,只需要修改查询为分组汇总形式:

修改后的SQL语句

--10/24/24 - 按PACKLIST_ID和CUST_ORDER_ID汇总发货总额
SELECT 
    DBO.SHIPPER.PACKLIST_ID, 
    MIN(dbo.shipper.SHIPPED_DATE) AS SHIPPED_DATE, -- 同一PACKLIST_ID的发货日期通常一致,用MIN/MAX都可
    DBO.SHIPPER.CUST_ORDER_ID,
    SUM(dbo.SHIPPER_LINE.SHIPPED_QTY) AS TOTAL_SHIPPED_QTY, -- 可选:汇总该分组下的总发货数量
    SUM(dbo.SHIPPER_LINE.SHIPPED_QTY * dbo.SHIPPER_LINE.UNIT_PRICE) AS TOTAL_AMOUNT
FROM
    DBO.SHIPPER
INNER JOIN 
    dbo.SHIPPER_LINE ON dbo.SHIPPER.PACKLIST_ID = dbo.SHIPPER_LINE.PACKLIST_ID
WHERE
    dbo.shipper.SHIPPED_DATE BETWEEN DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0) 
                                 AND DATEADD(m, DATEDIFF(m, -1, GETDATE()), 0)
GROUP BY 
    DBO.SHIPPER.PACKLIST_ID, DBO.SHIPPER.CUST_ORDER_ID -- 核心:同时按两个字段分组,确保不同PACKLIST_ID的同CUST_ORDER_ID分开统计
ORDER BY 
    MIN(dbo.shipper.SHIPPED_DATE)

关键说明

  • 分组依据:必须同时指定PACKLIST_ID和CUST_ORDER_ID作为分组键,这样即使不同PACKLIST_ID存在相同的CUST_ORDER_ID,也会被当作独立分组分别计算总额。
  • 汇总逻辑:用SUM()函数对明细行的金额和数量做汇总;发货日期用MIN()或MAX()是因为同一PACKLIST_ID的发货日期通常统一,若业务上能保证该日期唯一,也可以直接将SHIPPED_DATE加入GROUP BY子句。
  • 保留了原查询的时间过滤条件,确保只统计当月的发货数据。

内容的提问来源于stack exchange,提问作者Eric

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:40:01