Code: Alles auswählen.
DELETE ADJACENT DUPLICATES FROM itab COMPARING keyfield1 keyfield2 keyfield3.
bowser hat geschrieben: ↑17.09.2022 18:55Selektierst du alle Schlüsselfelder der linken Tabelle?
Wenn ja, könntest du DELETE ADJACENT DUPLICATES mit dem Zusatz COMPARING bei der internen Tabelle probieren, die das Ergebnis des Selects enthält. Denke das müsste klappen:
Einfach alle Schlüsselfelder der linken Tabelle hinter COMPARING angeben.Code: Alles auswählen.
DELETE ADJACENT DUPLICATES FROM itab COMPARING keyfield1 keyfield2 keyfield3.
Zuvor sollte die interne Tabelle nach den Schlüsselfeldern der linken Tabelle sortiert sein. Das geht ja direkt beim SELECT.
Also ohne das konkrete Beispiel zu kennen wird es schwierig.
Code: Alles auswählen.
SELECT *
FROM table1
WHERE key1, key2, key3 IN (
SELECT a~key1, a~key2, a~key3
FROM table1 AS a
LEFT JOIN table2 AS b
ON b~key1 = a~key1
AND b~key2 = a~key2
LEFT JOIN table3 AS c
ON c~key1 = a~key1
AND c~key3 = a~key3
)
INTO TABLE @DATA(result).
Das kann nur passieren, wenn Tabelle2(die rechte) die identischen Schlüsselfelder oder weniger hat als die linke Tabelle.