我有一个问题作为标题,我想得到每个仓库中出现的产品, 我不知道我什么时候想的很长时间,我发现我是如此的狡猾,
Thare是我的sql server数据库中的三个表:
产品 ( 的productID, 名称,型号, 尺寸, 颜色 )
仓库 ( warehouseID, 名称, 地址 )
库存 ( warehouseID, 的productID, 数量 )
我希望有人帮我看看,可以编写获得结果的SQL
谢谢。
答案 0 :(得分:3)
使用GROUP BY计算每个产品所在的仓库数量。接受此计数等于仓库总数的行。
SELECT productID
FROM Inventory
WHERE quantity > 0
GROUP BY productID
HAVING COUNT(*) = (SELECT COUNT(*) FROM Warehouse)
这假设(productID,warehouseID)在库存表中是唯一的。如果不是,请使用COUNT(DISTINCT warehouseID)
代替COUNT(*)
。