我是编程和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 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
答案 0 :(得分:1)
“省略所有具有3个或更多项目的SKU项目,总和”,听起来更像是:
FROM INVENTORY WHERE QuantitiyOnHand < 3
而不是:
HAVING COUNT(WarehouseID) >= 3
答案 1 :(得分:0)
INVENTORY
是产品列表(SKU
=库存单位=存储在仓库中的单个产品),其中每个产品都有WarehouseID
。这个warehouseID
可能决定了产品的存储位置。
通过省略所有SKU项目,它会要求您仅显示仓库中至少存储3个位置的产品。这可以使用having
子句
HAVING COUNT(WarehouseID) >= 3
我不知道您的INVENTORY
表格的结构和数据,只是简单地说,请考虑您的数据是这样的:
SKUID WareHouseID QuantityOnHand
1 1 10
1 2 10
2 1 10
1 3 5
2 2 20
在上述情况下,Product = 1(SKUID)存储在3个不同的仓库中,而产品2存储在2个仓库中。因此,
SKUID COUNT(WareHouseID) SUM(QuantityOnHand)
1 3 25
2 2 30
在这种情况下,您的查询将仅“忽略”产品1,而不是产品2。