编写SQL语句,显示库存中没有所有SKU商品的仓库的仓库信息
我尝试了这个查询,但结果:NULL
SELECT SKU
FROM SKU_DATA
WHERE NOT EXISTS
(SELECT 1 FROM INVENTORY
JOIN WAREHOUSE ON INVENTORY.WAREHOUSEID = WAREHOUSE.WAREHOUSEID
WHERE SKU_DATA.SKU =INVENTORY.SKU);
这里有不同的表
库存(SKU, WarehouseID SKU_Description, QuantityOnHand, QuantityOnOrder)
Order_Item (OrderNumber, SKU、数量、价格、ExtendedPrice)
Retail_order (OrderNumber、StoreNumber StoreZip, OrderMonth, OrderYear, OrderTotal)
SKU_Data (SKU, SKU_Description、部门买家)
仓库(WarehouseID、WarehouseCity WarehouseState,经理,SquareFeet)
输入图片描述
可能最简单的方法是计算SKU_Data
中唯一sku的数量,然后从Inventory
中选择所有具有少于该唯一sku数量的WarehouseID
。
关键的是,这里假设仓库没有SKU表中缺少的SKU。
同样假设Inventory(WarehouseID,SKU)
&SKU_Data(SKU)
是唯一的
select WarehouseID from Inventory group by SKU
having count(*) < (select count(*) from SKU_Data)
我没有测试过,但我认为这是正确的:)
如果这不起作用,您可以选择count(*)
作为一个局部变量,如
select @skunum := count(*) from SKU_Data
select WarehouseID from Inventory group by SKU having count(*) > @skunum
如果您还想检查仓库是否有库存,只需在from Inventory
后添加where QuantityOnHand > 0