Code: Alles auswählen.
Loop at lt_itab1 into ls_work.
read table lt_ausgabe into ls_ausgabe with key opbel = ls_work
iban <> ls_workd-iban.
Code: Alles auswählen.
DATA: lv_opbel TYPE opbel,
lv_iban TYPE iban.
SORT lt_ausgabe BY opbel iban.
SORT lt_itab1 BY opbel iban.
LOOP AT lt_itab1 ASSIGNING FIELD-SYMBOL(<work>).
"hier könnte man auch Gruppenstufenverarbeitung nutzen, die ich nicht mag.
"In neueren Releases könnte man dafür GROUP-BY in dem LOOP nutzen
IF <work>-opbel NE lv_opbel OR <work>-iban NE lv_iban.
lv_opbel = <work>-opbel.
lv_iban = <work>-iban.
LOOP AT lt_ausgabe TRANSPORTING NO FIELDS WHERE opbel = <work>-opbel
AND iban <> <work>-iban.
"ungleich
EXIT.
ENDLOOP.
ENDIF.
ENDLOOP.
wieso nicht?Bright4.5 hat geschrieben:@ewx.
Ja, aber diese Information würde mir nicht viel bringen.
Bright4.5 hat geschrieben:[...]ob Einträge in der ersten internen Tabelle auch in der zweiten vorkommen[...]
Code: Alles auswählen.
Loop at itab1 into data(struc1).
if not line_exists( itab2[ field1 = struc1-field1 field2 = struc1-field2 ] ).
insert struc1 into itab2.
endif.
endloop.
Bright4.5 hat geschrieben:Okay, vielen Dank an alle ich hätte es gelöst.
Diese Diskussion hatten wir kürzlich in einem anderen Thread. Einerseits ist es nicht immer zu vermeiden, zweitens ist es auch nicht notwendigerweise schlimm, und dritterseits reden wir hier von einem Pseudo-Loop, der nur einen EXIT enthält und der daher genauso wie ein READ TABLE nur einmalig durchlaufen wird. Damit hat der LOOP zwar eine etwas sperrigere Syntax, ist performancetechnisch aber nicht nennenswert schlechter.Bright4.5 hat geschrieben:hmm das wäre ja leider auch wieder ein Loop im Loop, gerade so etwas wollte ich gerne vermeiden.