Code: Alles auswählen.
SORT <ITAB> BY Feld1 Feld2 Feld 3 ...
LOOP AT <itab> INTO <WA>.
IF <WA>-Feld1 = <WA_OLD>-Feld1
AND <WA>-Feld2 = <WA_OLD>-Feld2
AND SO ON.
APPEND <WA> TO <ITAB_DUPLICATE>.
ENDIF.
<WA_OLD> = <WA>.
ENDLOOP.
Versteh ich nicht, wie das funktionieren soll. Es stehen ja weiterhin alle Kombinationen in table_original drin.ewx hat geschrieben:Also am einfachsten wäre IMHO diese Variante:
Table_duplicates[] = Table_original[]
Delete adjacent duplicate from table_orginial comparing feld1 feld2....
und dann die Einträge aus Table_duplicates rausschmeissen, die ebenfalls in Table_original stehen.
Übrigen bleiben die doppelten.
Das sollten natürlich keine Tabellen mit mehreren hunderttausend Einträgen sein...
Nööh!Ratazong hat geschrieben:Versteh ich nicht, wie das funktionieren soll. Es stehen ja weiterhin alle Kombinationen in table_original drin.
Danach sind die doppelten weg...ewx hat geschrieben:Delete adjacent duplicate from table_orginial comparing feld1 feld2....
Sofort verklagen!!!b_c hat geschrieben:Für die 30 Tage hab ich nun auch ne Lösung, aber bei deinem Vorschlag, ratazong, bekam ich n Kurzdump, da wa_old noch nicht zugewiesen war
Stand da irgendetwas von FIELD-Symbol?ewx hat geschrieben:Sofort verklagen!!!b_c hat geschrieben:Für die 30 Tage hab ich nun auch ne Lösung, aber bei deinem Vorschlag, ratazong, bekam ich n Kurzdump, da wa_old noch nicht zugewiesen war
Ja, und dann? Loopst Du über die duplicate und liest den eintrag in der original. Findest Du immer. Und nun?ewx hat geschrieben:Nööh!Ratazong hat geschrieben:Versteh ich nicht, wie das funktionieren soll. Es stehen ja weiterhin alle Kombinationen in table_original drin.Danach sind die doppelten weg...ewx hat geschrieben:Delete adjacent duplicate from table_orginial comparing feld1 feld2....
Nein, dann liest du über das, was ausser den Duplikaten übrig bleibt.Ratazong hat geschrieben:Ja, und dann? Loopst Du über die duplicate und liest den eintrag in der original. Findest Du immer. Und nun?
genau...Ratazong hat geschrieben:Aber bei Datum+30 Tage hat sich das ja eh erledigt.
Endlich kommt hier mal eine Diskussion zu Standeewx hat geschrieben:Nein, dann liest du über das, was ausser den Duplikaten übrig bleibt.Ratazong hat geschrieben:Ja, und dann? Loopst Du über die duplicate und liest den eintrag in der original. Findest Du immer. Und nun?
Wenn du dann aus der Originaltabelle die rauswirfst, die in der bereinigten Tabelle drin sind, bleiben - wie gewünscht - die Duplikate übrig.genau...Ratazong hat geschrieben:Aber bei Datum+30 Tage hat sich das ja eh erledigt.
Code: Alles auswählen.
DATA: BEGIN OF gs_data,
werks TYPE werks_d,
kunnr TYPE kunnr,
END OF gs_data,
gt_data like TABLE OF gs_data.
INITIALIZATION.
gs_data-werks = '0001'. gs_data-kunnr = '0000000815'.
APPEND gs_data TO gt_data.
gs_data-kunnr = '0000004711'.
APPEND gs_data TO gt_data.
START-OF-SELECTION.
* Hier mal bitte Deinen Code einfügen, weil ich peile das immer noch nicht (Relevant zum Vergleich sind alle Felder)