我在小型食品仓库工作,我们为小商店准备货物。我们使用WMS完成工作。出于某些原因,我需要使用系统中的SQL builder从数据库中获取一些数据。情况就是这样。
要获取已发送特定产品的商店的信息,请使用此查询:
select cd.cage_nbr, cd.units_of_product, pk.to_store
from cage_dtl cd
inner join item_master im on im.sku_id=cd.sku_id
INNER JOIN pkt_hdr pk ON pk.pkt_ctrl_nbr=cd.pkt_ctrl_nbr
where im.barcode = '105683004'
and cd.open_cage_batch = 31102014
要查看我们的客户使用此查询分配的商店列表和产品数量:
select sd.to_store, sd.alloc_qty, sd.alloc_batch, im.size_desc
from store_distro sd
inner join item_master im on im.sku_id=sd.sku_id
where im.barcode = '105683004'
and sd.alloc_batch = 31102014
但是我需要一个SQL来向我展示任何尚未发送产品的商店。 我会提供任何帮助
由于
答案 0 :(得分:2)
您可以尝试为第一个查询执行LEFT JOIN
并检查NULL
。像
select cd.cage_nbr, cd.units_of_product, pk.to_store
from cage_dtl cd
left join item_master im
on im.sku_id = cd.sku_id and im.barcode = '105683004'
LEFT JOIN pkt_hdr pk
ON pk.pkt_ctrl_nbr = cd.pkt_ctrl_nbr
where cd.open_cage_batch = 31102014
and pk.to_store IS NULL
答案 1 :(得分:0)
我在这里学习了如何选择SELECT(SELECT' s): SQL SELECT Union SELECT FROM (Select...)
在这种情况下,它会像......
SELECT (columns)
FROM
(select cd.cage_nbr, cd.units_of_product, pk.to_store
from cage_dtl cd
inner join item_master im on im.sku_id=cd.sku_id
INNER JOIN pkt_hdr pk ON pk.pkt_ctrl_nbr=cd.pkt_ctrl_nbr
where im.barcode = '105683004'
and cd.open_cage_batch = 31102014
) AS dispatched
JOIN
(select sd.to_store, sd.alloc_qty, sd.alloc_batch, im.size_desc
from store_distro sd
inner join item_master im on im.sku_id=sd.sku_id
where im.barcode = '105683004'
and sd.alloc_batch = 31102014
) AS allocated
ON (stuff)