私はここでどの方向に進むべきか途方に暮れています。これが私がやろうとしていることです... 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
そして、それが私がつまずくところです.... :(事前にアイデアをありがとう:)