SQL 检查 2 列
SQL check against 2 columns
我有一个包含 1,362 种不同物品的数据库,这些物品可以存储在 112 个不同仓库中的任何一个中。
我想写一些东西 return 所有不同仓库中库存值为 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]
哪个 returns:
例如,此商品不适用,因为它在 2 个仓库中有库存。
我希望这个问题是有道理的。如果没有,请告诉我,我会尽力澄清。
假设股票价值从不为负,你可以这样做:
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
子句强制执行您的条件。
- 我建议您不要在 table 名称中包含空格。使用简单名称,因此无需转义列名。
我有一个包含 1,362 种不同物品的数据库,这些物品可以存储在 112 个不同仓库中的任何一个中。
我想写一些东西 return 所有不同仓库中库存值为 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]
哪个 returns:
例如,此商品不适用,因为它在 2 个仓库中有库存。
我希望这个问题是有道理的。如果没有,请告诉我,我会尽力澄清。
假设股票价值从不为负,你可以这样做:
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
子句强制执行您的条件。- 我建议您不要在 table 名称中包含空格。使用简单名称,因此无需转义列名。