0
我在查詢SQL Server 2012中的庫存數據庫以嘗試獲取已完成貨物的項目列表。每個項目在「項目」表中都有記錄。一些項目已被分組爲托盤。同一托盤中的所有項目都有一個共同的「托盤編號」托盤出貨時,它們將托盤中的其中一個項目標記爲已發貨。其他人沒有改變。我需要做的是使查詢正確找到未發貨的項目。該查詢應查找屬於同一托盤的項目。如果托盤中的一個物品已發貨,則該托盤中的所有物品都不應包含在退貨清單中。在子查詢或聯接聲明中篩選問題
查詢發現是運托盤的一部分,所有的項目是:
select p.* from Items i
inner join Items p on i.PalletNum = p.PalletNum
where i.Status = 'SHIPPED'
主要查詢搜索目前庫存:
select * from Items
where i.Status = 'FINISHED GOODS'
如果我運行此查詢,它會查找所有裝運托盤的一部分物品。我想要做的是從第二個查詢中刪除第一個查詢返回的所有項目。我試着用子查詢來做這件事,但它不能正常工作。這裏是我嘗試使用子查詢:
select inv.* from Items inv
where inv.Status = 'FINISHED GOODS' and not exists (
select p.* from Items i
inner join Items p on i.PalletNum = p.PalletNum
where i.Status = 'SHIPPED')
此查詢不會返回任何內容。我也嘗試通過爲子查詢使用Join語句來做到這一點,但這也不起作用。任何幫助表示讚賞。
我相信那些別名五世的應該是我的。 – KindaTechy
謝謝,那正是我需要的。我很感激幫助。 –