我不知道该往哪里走。这就是我想要做的......想象有一个“系统”,里面有 5 个盒子......每个盒子有 10 个可以容纳物品的口袋。该数据库在口袋级别跟踪库存。我需要一个 itemid 的列表,它们不在父“系统”中的任何位置(假设它们仍然可能在其他系统的口袋中。
tblpocket
----------
systemid, itemid, pocketid, curqty
1, PFLI, 12, 0
1, MEP50, 16, 0
1, PFLI, 20, 0
1, OND5, 32, 0
2, OXBUT, 10, 0
2, DIPL, 12, 0
2, OXBUT, 16, 1
2, PFLI, 18, 1
除了 "OXBUT" itemid 之外的所有项目都需要返回。您还可以看到如何进行子选择以排除 itemid curqty > 0 的位置将它从结果中完全排除在 systemid 1 上的缺货位置。
我有 300 个 SystemID 和数千个 ItemID,所以一次做 systemid 不是一种选择。
这是我开始做的事情:
SELECT systemid, itemid
FROM TblPocket
WHERE curqty = 0 AND itemid NOT IN
(Select itemid from tblpocket where curqty > 0)
GROUP BY systemid, itemid
这就是我被绊倒的地方.... :( 提前感谢您的想法 :)