gpt4 book ai didi

sql - GROUP by ITEM number 和 Quantity to Stock 的总和

转载 作者:行者123 更新时间:2023-12-01 10:22:12 25 4
gpt4 key购买 nike

我正在努力研究如何按商品编号分组并将数量添加到库存中。

我当前的代码是:

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.QtyToStock
, dbo.InventoryItems.DescriptionMed, dbo.Locations.LocationCode
HAVING (dbo.InventoryItems.ItemNo LIKE 'CL10%')

我得到以下结果:

enter image description here

但我的预期输出是:

CL1000 将与它们的总和一起排成两行。请帮忙!

ItemNo          Description               QTYtoStock      LocationCode
CL1000 Square Seat Legs 4 CREST
CL1000 Square Seat Legs 93 DZ
CL1002 Square Low Back Sofa 5 DZ

最佳答案

您显然只需要正确的GROUP BY:

SELECT ii.ItemNo, ii.DescriptionMed AS Description, 
SUM(ii.QtyToStock) AS QtytoStock, l.LocationCode
FROM dbo.InventoryItems ii INNER JOIN
dbo.Locations l
ON ii.LocationID = l.LocationID
WHERE ii.ItemNo LIKE 'CL10%'
GROUP BY ii.ItemNo, ii.DescriptionMed, l.LocationCode;

所有未聚合 列(或表达式)都应该在GROUP BY 中。 QtyToStock 正在聚合,因此不合适。

进一步的建议:

  • 使用表格别名。这些应该是表格的缩写,因此很容易理解。
  • 用缩短的别名限定列名。更容易编写和阅读。
  • HAVING 子句位于 GROUP BY 键上。这(通常)使用 WHERE 可以更好地处理。 WHERE 将减少需要聚合的行数,这通常是性能上的胜利。

关于sql - GROUP by ITEM number 和 Quantity to Stock 的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49972303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com