从Sum SQL中省略项
我对编程和SQL非常陌生,我无法理解这一点,也许我还没有学会这个概念,但我希望你能帮助我。对不起,如果这太简单和无聊了从Sum SQL中省略项,sql,having,Sql,Having,我对编程和SQL非常陌生,我无法理解这一点,也许我还没有学会这个概念,但我希望你能帮助我。对不起,如果这太简单和无聊了 /*2.37 Write an SQL statement to display the WarehouseID and the sum of QuantityOnHand,grouped by WarehouseID. Omit all SKU items that have 3 or more items on hand from the sum, and name
/*2.37 Write an SQL statement to display the WarehouseID and the sum of
QuantityOnHand,grouped by WarehouseID. Omit all SKU items that have 3 or more items
on hand from the sum, and name the sum TotalItemsOnHandLT3 and display the results
in descending order of TotalItemsOnHandLT3.*/
SELECT WarehouseID, SUM(QuantityOnHand) AS TotalItemsOnHandLT3
FROM INVENTORY
GROUP BY WarehouseID
HAVING COUNT(WarehouseID) >= 3
ORDER BY TotalItemsOnHandLT3 DESC
INVENTORY
是产品列表(SKU
=库存单位=仓库中存储的单个产品),其中每个产品都有一个仓库ID
。此仓库ID
可能确定产品的存储位置
通过省略所有SKU项目,它要求您仅显示存储在仓库中至少3个位置的产品。这可以通过having
子句实现
HAVING COUNT(WarehouseID) >= 3
<>我不知道你的代码>清单< /C>>表的结构和数据,但是简单地说,考虑你的数据是这样的:
SKUID WareHouseID QuantityOnHand
1 1 10
1 2 10
2 1 10
1 3 5
2 2 20
在上述情况下,产品=1(SKUID)存储在3个不同的仓库中,而产品2存储在2个仓库中。因此,
SKUID COUNT(WareHouseID) SUM(QuantityOnHand)
1 3 25
2 2 30
在这种情况下,您的查询只会“省略”产品1,而不会“省略”产品2。“省略总和中手头有3个或更多项目的所有SKU项目”,听起来更像:
FROM INVENTORY WHERE QuantitiyOnHand < 3
就是这样,我应该提到我问的原因是前一个问题只是问了没有省略项部分的总和,无论我在做什么,我都得到了相同的答案,所以我知道省略项部分出了问题。我以为我试过你的解决办法,但我想我没有。谢谢
HAVING COUNT(WarehouseID) >= 3