Я хочу получить эти записи из прозрачной таблицы, что не существуют во ВСЕХ ВХОДАХ в itab. Если логика по умолчанию включает те записи, которые существуют во внутренней таблице, я хочу, чтобы исключить те записи, которые имеют корреспондентские записи во внутренней таблице. Мне нужен какой-то тип FOR ALL ENTRIES NOT IN. Есть ли обходной путь?Исключить строки для ВСЕХ ВХОДОВ itab
0
A
ответ
0
Вы можете использовать простой запрос для этой проблемы.
Проверить это кодирование ...
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.
+0
Рабочее решение, но не очень эффективное. – Suncatcher
1
не думаю если возможно. Я бы использовал диапазоны для этого. Если это не подходит, можно использовать таблицу loop + read.
Ответ зависит от количества записей, которые должны быть исключены, мы говорим десятки, сотни, тысячи, десятки тысяч, больше? – tomdemuyt
Я думаю, что есть (десять) тысяч записей. – Suncatcher
См. [«Если вопросы включают« теги »в их названиях?»] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), где консенсус «нет, они не должны»! –