2012-06-12 2 views
0

Я хочу получить эти записи из прозрачной таблицы, что не существуют во ВСЕХ ВХОДАХ в itab. Если логика по умолчанию включает те записи, которые существуют во внутренней таблице, я хочу, чтобы исключить те записи, которые имеют корреспондентские записи во внутренней таблице. Мне нужен какой-то тип FOR ALL ENTRIES NOT IN. Есть ли обходной путь?Исключить строки для ВСЕХ ВХОДОВ itab

+0

Ответ зависит от количества записей, которые должны быть исключены, мы говорим десятки, сотни, тысячи, десятки тысяч, больше? – tomdemuyt

+0

Я думаю, что есть (десять) тысяч записей. – Suncatcher

+0

См. [«Если вопросы включают« теги »в их названиях?»] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), где консенсус «нет, они не должны»! –

ответ

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.

 Смежные вопросы

  • Нет связанных вопросов^_^