2017-08-03 10 views
0

InventItemLocationテーブルには、InventDimId 'A'を持つ1つとInventDimId 'B'を持つ1つのレコードが2つ含まれている必要があります。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

を試してみてくださいExistingInventDimIdを持つレコードを検索しようとしているが、MissingInventDimIdを持っていない場合'InventItemLocation'はアイテムが存在しない場所を記録し、' inventDimId'は両方とも 'MissingInventDimId'と' ExistingInventDimId'に等しくなります。 –

答えて

3

あなたがすべて選択されているので、その後、私はあなたのクエリはまったく結果を生成驚い次

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); 
    } 
} 
関連する問題