Nein. Das geht nicht.RIG hat geschrieben:Hallo an alle,
ich frage mich ob ich diesen Loop irgendwie auch in eine einzeilig anweisung Delete... where ... bekomme.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
RIG
Code: Alles auswählen.
SORT gt_sched_bookrent BY kennzeichen. "Sortieren damit BINARY SEARCH möglich ist, alternative wäre einen SORTED TABLE zu verwenden
DELETE ADJACENT DUPLICATES FROM gt_sched_bookrent COMPARING kennzeichen. "Duplikate entfernen, evtl. eine zweite Tabelle verwenden, damit man die anderen Datensätze nicht verliert
DELETE gt_sched_bookrent WHERE kennzeichen IS INITIAL. "Die werden ja sowieso ausgeschlossen
SORT gt_cars_bookrent BY kennzeichen. "Sortiert, damit eine Gruppenstufenverarbeitung möglich ist
CLEAR ld_kennzeichen. "Hilfsvariable für Gruppenstufenverarbeitung initialisieren
LOOP AT gt_cars_bookrent ASSIGNING <gs_cars_bookrent> WHERE kennzeichen IS NOT INITIAL.
IF ld_kennzeichen NE <gs_cars_bookrent>-kennzeichen. "Gruppenstufenverarbeitung. Würde auch mit AT NEW funktionieren ist aber so flexibler
UNASSIGN <gs_sched_bookrent>. "Der Umstand 'nichts gefunden' wird durch ein unverknüpftes Feldsymbol ausgedrückt (erspart Zusatzvariable)
READ TABLE gt_sched_bookrent ASSIGNING <gs_sched_bookrent> BINARY SEARCH "Binary Search für den schnellsten Zugriff
WITH KEY kennzeichen = <gs_cars_bookrent>-kennzeichen.
ld_kennzeichen = <gs_cars_bookrent>-kennzeichen. "Hilfsvariable für Gruppenstufenverarbeitung befüllen
ENDIF.
IF <gs_sched_bookrent> IS ASSIGNED. "Wurde was gefunden, dann die aktuelle Zeile löschen
DELETE gt_cars_bookrent.
ENDIF.
ENDLOOP.
Habs mir nochmals durchgeschaut, kann aber den Fehler den du meinst nicht entdecken.black_adept hat geschrieben:Das sieht mir noch nicht ganz richtig aus, denn beim Gruppenwechsel wird die 1. Zeile der neuen Gruppe nie gelöscht, die folgenden hingegen schon.
Hast recht - mein Fehler - dein Coding ist korrekt. Die ganzen Feldsymbolnamen haben wohl mein Hirn verwirrt.a-dead-trousers hat geschrieben:Habs mir nochmals durchgeschaut, kann aber den Fehler den du meinst nicht entdecken.black_adept hat geschrieben:Das sieht mir noch nicht ganz richtig aus, denn beim Gruppenwechsel wird die 1. Zeile der neuen Gruppe nie gelöscht, die folgenden hingegen schon.