Was meinst du damit "was damit gemacht werden soll"? comparing ist schon richtig. Damit löst du dein Problem.mörtel hat geschrieben:mit comparing fields lege ich nur die Vergleichsfelder fest, aber nicht was damit gemacht werden soll.
Du wirst da nicht um ein LOOP über die itab herum kommen. Ich würde das in etwa so lösenmörtel hat geschrieben:ich will aber das auch der erste Eintrag der Gruppierung gelöscht wird.
Code: Alles auswählen.
* Tabelle nach Key sortieren
SORT itab BY key1 key2 key3 key4.
* Mehrfacheinträge löschen
LOOP AT itab INTO wa.
* zähler initialisieren
AT NEW key4.
CLEAR g_count
ENDAT.
* Zählen
g_count = g_count + 1.
* Wenn Mehrfacheinträge dann löschen
AT END OF key4.
IF g_count > 1.
DELETE itab WHERE key1 = wa-key1
AND key2 = wa-key2
AND key3 = wa-key3
AND key4 = wa-key4.
ENDIF.
ENDAT.
ENDLOOP.
Code: Alles auswählen.
SELECT *
FROM dbtab
INTO TABLE itab
WHERE eins IN s_eins
AND zwei IN s_zwei
AND NOT EXISTS ( SELECT *
FROM dbtab
WHERE key1 = dbtab~key1
AND key2 = dbtab~key2
AND key3 = dbtab~key3
AND key4 = dbtab~key4
AND key5 <> dbtab~key5 )