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

MySQL按PO分组统计同产品收货总量并按产品名称排序

解决按采购订单(PO)+产品统计总收货量的SQL问题

你之前的查询只按Product_Name分组,会把不同PO下的同一款产品收货量全部累加,这就是问题所在。要实现每个PO下单独统计对应产品的总收货量,必须同时按PO和产品名进行分组。

假设你的GrnTable表包含以下核心字段:PO_Number(采购订单编号)、Product_Name(产品名称)、Receive_Quantity(单次收货量),正确的SQL查询应该是:

SELECT 
    PO_Number,
    Product_Name,
    SUM(Receive_Quantity) AS Total_Received_Quantity
FROM GrnTable
GROUP BY PO_Number, Product_Name
ORDER BY Product_Name;

关键说明:

  • GROUP BY PO_Number, Product_Name:这一步是核心,它会将数据按「采购订单+产品」的组合进行分组,确保每个PO下的每个产品单独计算总收货量,不会跨PO合并数据。
  • SUM(Receive_Quantity):对每个分组内的收货量求和,得到该PO对应产品的总收货量。
  • ORDER BY Product_Name:最终结果按产品名称排序,满足你的需求。

如果你的表还有其他需要展示的非聚合字段(比如产品IDProduct_ID),记得把这些字段也加入GROUP BY子句中(部分SQL模式如MySQL的ONLY_FULL_GROUP_BY会强制要求这一点)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:15:54