2017-08-03 62 views
0

InventItemLocation表應該包含2條記錄,其中1條記錄爲InventDimId'A',1條記錄爲InventDimId'B'。查找2條缺失記錄中的1條

我正在嘗試搜索缺少InventDimId'A'的項目。

下面的代碼的問題在於,它還顯示包含InventDimId'A'(MissingInventDimId)的項目,因爲它正在檢查該行。

static void FindMissingInventItemLocation(Args _args) 
{ 
    InventTable inventTable; 
    InventItemLocation inventItemLocation; 
    str info; 

    while select inventItemLocation 
    notexists join inventTable 
    where inventTable.ItemId == inventItemLocation.ItemId && 
    inventItemLocation.inventDimId == 'MissingInventDimId' && 
    inventItemLocation.inventDimId == 'ExistingInventDimId' 
    { 
     info (inventItemLocation.ItemId); 
    } 

} 
+0

我很驚訝你的查詢產生任何結果可言,因爲你是選擇所有'InventItemLocation'記錄項目不存在的地方,'inventDimId'等於'MissingInventDimId'和'ExistingInventDimId'。 –

回答

3

如果你正在努力尋找有ExistingInventDimId記錄,但沒有MissingInventDimId請嘗試以下

static void FindMissingInventItemLocation(Args _args) 
{ 
    InventItemLocation inventItemLocationExisting; 
    InventItemLocation inventItemLocationMissing; 
    str info; 
    ; 

    while select inventItemLocationExisting 
     where inventItemLocationExisting.inventDimId == 'ExistingInventDimId' 
    notexists join inventItemLocationMissing 
     where inventItemLocationMissing.ItemId == inventItemLocationExisting.ItemId && 
       inventItemLocationMissing.inventDimId == 'MissingInventDimId' 
    { 
     info (inventItemLocationExisting.ItemId); 
    } 
}