省略Sum SQL中的项目

时间:2014-02-02 01:50:24

标签: 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 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

2 个答案:

答案 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。