Cyb*_*ebi 2 sql sql-server ssms
我有两张桌子,Stock和Warehouse.
我需要获得所有仓库中可用的物品.
这是一个例子:
Stock Table:
ItemID WarehouseID ItemAmount
-------------------------------------------
1043 1 20
1043 2 2
1043 3 16
1043 4 17
1044 1 32
1044 2 12
1044 4 7
1055 2 6
Run Code Online (Sandbox Code Playgroud)
Warehouse Table:
WarehouseID WarehouseName
-------------------------------
1 Name1
2 Name2
3 Name3
4 Name4
Run Code Online (Sandbox Code Playgroud)
对于示例,结果应该是Item,1043因为它在所有仓库中都可用,与其他仓库不同.
我没有得到解决方案,任何人都可以帮助我吗?
你也可以使用这个"双阴性"查询NOT EXISTS:
SELECT DISTINCT s.ItemID
FROM StockTable s
WHERE NOT EXISTS
(
SELECT 1 FROM Warehouse w
WHERE NOT EXISTS(SELECT 1 FROM StockTable s2
WHERE w.WarehouseID = s2.WarehouseID
AND s.ItemID = s2.ItemID)
)
Run Code Online (Sandbox Code Playgroud)
这种方法看起来更冗长,但它有一些好处:
GROUP BY未使用| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |