我有一个包含1,362种不同商品的数据库,可存储在112个不同仓库中的任何一个。
我想写一些东西,它会返回所有不同仓库中股票价值为0的每件商品的名称。
我已经拥有以下内容:
SELECT OITW.[ItemCode] AS [Item Code], INV1.[Dscription] AS [Description],
OITW.[WhsCode] AS [Warehouse], SUM(OITW.[OnHand]) AS [On Hand]
FROM OITW
INNER JOIN INV1 ON INV1.[ItemCode] = OITW.[ItemCode]
WHERE INV1.[Dscription] LIKE 'BA SQUID ASSASSIN -Case%'
GROUP BY OITW.[ItemCode], INV1.[Dscription], OITW.[WhsCode]
ORDER BY [Warehouse], [On Hand]
返回:
此项目不适用,例如,它有两个仓库中的库存。
我希望这个问题有道理。如果没有,请告诉我,我会尽力澄清。
答案 0 :(得分:1)
假设股票价值从不为负,您可以这样做:
SELECT INV1.[ItemCode] AS [Item Code], INV1.[Description] AS [Description],
FROM OITW INNER JOIN
INV1
ON INV1.[ItemCode] = OITW.[ItemCode]
WHERE INV1.[Description] LIKE 'BA SQUID ASSASSIN -Case%'
GROUP BY OITW.[ItemCode], INV1.[Description],
HAVING MAX([ON HAND]) = 0;
您的查询中的更改:
GROUP BY
仅包括项目和说明,而不包括仓库和现有金额。SELECT
以匹配GROUP BY
。HAVING
条款强制执行您的条件。