FOR ALL ENTRIES itab に存在しない透過テーブルからレコードを取得したいと考えています。
デフォルトのロジックは、内部テーブルに存在するエントリを含めることですが、それらを除外したいと思います。ある種の FOR ALL ENTRIES NOT IN ステートメントが必要です。
回避策はありますか?
可能かどうかは考えていません。そのために範囲を使用します。これが適切でない場合は、loop+read table を使用できます。
この問題には単純なクエリを使用できます。
このコーディングを確認してください...
TABLES : table1 , table2 .
DATA : it_table1 TYPE STANDARD TABLE OF table1 ,
it_table2 TYPE STANDARD TABLE OF table2 ,
wa_table1 TYPE table1 ,
wa_table2 TYPE table2 .
SELECT * FROM table1 INTO CORRESPONDING FIELDS OF TABLE it_table1 .
LOOP AT it_table1 INTO wa_table1 .
SELECT field1 FROM table2 INTO CORRESPONDING FIELDS OF TABLE it_table2 WHERE field2 = wa_table1-field1 .
IF sy-subrc = 0 .
delete TABLE it_table1 FROM wa_table1 .
ENDIF.
ENDLOOP.