Code: Alles auswählen.
SELECT *
FROM db
INTO t_not_in_itab_but_in_db
FOR ALL ENTRIES IN itab
WHERE key1 <> itab-key1
OR key2 <> itab-key2
...(andere keys)
Code: Alles auswählen.
SELECT *
FROM db
INTO TABLE gt_db.
LOOP AT gt_db INTO wa_db.
LOOP AT gt_itab INTO wa_itab.
IF wa_itab-werks <> wa_db-werks.
IF wa_itab-vbeln <> wa_db-vbeln.
...(andere keys)
DELETE db FROM wa_itab.
...
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
Code: Alles auswählen.
* über die neue itab in wa
Loop itab into wa (oder ASSIGN)
Select Single auf dbtab where key = wa-key and key2 = wa-key
if sy-subrc = 0.
*Satz vorhanden muss aus DB raus
delete dbtab from wa
endif.
endloop.
Code: Alles auswählen.
*lade db_alt in it_alt.
loop it_alt into wa
*Schaue ob Satz aus it_alt in it_neu ist.
Read table it_neu key key = wa-key
if sy-subrc <> 0.
* löschen
delete dbtab where wa = wa_it_alt
endif
endloop