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

按物料编号(ItemNo)分组汇总QtyToStock的SQL实现咨询

解决按物料编号分组汇总QtyToStock的问题

嘿,我看你在尝试按物料编号(ItemNo)分组汇总QtyToStock字段,当前的SQL代码里有个关键问题需要调整——你把要汇总的QtyToStock字段也放进GROUP BY子句里了,这会让分组逻辑出错,没法实现你想要的求和效果。

问题原因

GROUP BY的核心规则是:所有出现在SELECT中、没有被聚合函数(比如SUM、COUNT)包裹的字段,都必须加入GROUP BY;但被聚合的字段(也就是你要求和的QtyToStock)绝对不能放到GROUP BY里。如果把QtyToStock加入分组,数据库会按每个不同的QtyToStock值单独分组,就不是按ItemNo汇总了。

修正后的SQL代码

SELECT 
    dbo.InventoryItems.ItemNo,
    dbo.InventoryItems.DescriptionMed AS Description,
    SUM(dbo.InventoryItems.QtyToStock) AS QtytoStock,
    dbo.Locations.LocationCode
FROM dbo.InventoryItems
INNER JOIN dbo.Locations ON dbo.InventoryItems.LocationID = dbo.Locations.LocationID
GROUP BY 
    dbo.InventoryItems.ItemNo,
    dbo.InventoryItems.DescriptionMed,
    dbo.Locations.LocationCode

补充说明

如果你的需求是仅按ItemNo单独分组(不需要按仓库位置或物料描述分组),那就要调整SELECT和GROUP BY,只保留ItemNo和求和字段,比如:

SELECT 
    dbo.InventoryItems.ItemNo,
    SUM(dbo.InventoryItems.QtyToStock) AS QtytoStock
FROM dbo.InventoryItems
INNER JOIN dbo.Locations ON dbo.InventoryItems.LocationID = dbo.Locations.LocationID
GROUP BY 
    dbo.InventoryItems.ItemNo

不过从你原代码的SELECT内容来看,应该是需要按ItemNo+DescriptionMed+LocationCode的组合来分组汇总,第一种修正后的代码更贴合你的初始需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:55:01