Du vergleichst mit deiner Methodik nur Tabellenzeilen, die direkt nebeneinander sind. Damit das funktioniert, müsste die Tabelle erst nach den Schlüsseln sortiert werden. Ob das passiert ist aus diesem Coding-Schnipsel nicht ersichtlich.L0w-RiDer hat geschrieben:Hallo zusammen,
ich habe ein Programm geschrieben, welches mir Kreditoren-Dubletten heraussuchen soll. Nun kommt es leider vor, dass es mir unterschiedliche Ergebnisse ausgibt. Der Fehler liegt hier in folgendem Codefragment (siehe unten). Ich führe es ein Mal aus und es gibt mir 120 Einträge, beim nächsten Mal vielleicht 135 usw. Kann da jemand erkennen wo der Fehler liegt? Hat jemand sonst Vorschläge für eine Alternative wie man das programmieren könnte?
Vielen Dank im Voraus.
Code: Alles auswählen.
LOOP AT gt_join INTO gs_join. IF sy-tabix = 1. gs_merk = gs_join. ELSE. IF gs_merk-iban = gs_join-iban AND gs_merk-tabkey <> gs_join-tabkey AND gs_merk-bukrs = gs_join-bukrs. IF lv_hilf <> 1. MESSAGE 'Doppelte IBAN-Nummer wurde gefunden!' TYPE 'I' DISPLAY LIKE 'I'. lv_hilf = 1. ENDIF. shift gs_merk-tabkey left DELETING LEADING '0'. shift gs_join-tabkey left DELETING LEADINg '0'. APPEND gs_merk TO gt_ausgabe. APPEND gs_join TO gt_ausgabe. ELSE. gs_merk = gs_join. ENDIF. ENDIF. ENDLOOP.
Alle oder nur die wo die nachfolgende Verarbeitung auf einer Sortierung beruht? Ich kenne hinreichend viele Fälle, wo einfach eine Liste abgearbeitet werden muss - egal wie die Sortierung ist.a-dead-trousers hat geschrieben:IWir haben daher schon vor geraumer Zeit (auch weil die Hana-Umstellung anstand) begonnen unsere Programme nach fehlenden SORT oder ORDER BY zu durchsuchen und korrigieren.
Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
DeathAndPain
Sagen wir mal so: Ziemlich viele.black_adept hat geschrieben:Alle oder nur die wo die nachfolgende Verarbeitung auf einer Sortierung beruht? Ich kenne hinreichend viele Fälle, wo einfach eine Liste abgearbeitet werden muss - egal wie die Sortierung ist.
Hi.L0w-RiDer hat geschrieben:Ja, gt_join ist ein DB-Join über 3 DB-Tabellen. Ich sortierte davor auf iban und bukrs, da ich ja alle doppelten IBAN-Nummern die verschiedene Tabkeys haben im gleichen Buchungskreis herausfinden möchte.
Hat da einer ne Idee?
Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag (Insgesamt 2):
ralf.wenzel • moo_jo