Nein. Aber es reicht ja:debianfan hat geschrieben: Oder gibts die Möglichkeit, den zweiten Select mit 2 mal for all entries @it_input-vertragsnummer und @lt_itab1-vertragsnummer anzugeben?
Code: Alles auswählen.
for all entries in @lt_itab1-vertragsnummer where dbtab2~vertragsnummer = lt_itab1~vertragsnummer.
Die Lösung von moo_jo berücksichtigt aber die interne Tabelle nicht.Die Lösung von moo_jo müsste aber auch gehen und du hast nur einen Join anstelle von zwei Selects.
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
debianfan
ewx hat geschrieben:Nein. Aber es reicht ja:debianfan hat geschrieben: Oder gibts die Möglichkeit, den zweiten Select mit 2 mal for all entries @it_input-vertragsnummer und @lt_itab1-vertragsnummer anzugeben?Die Lösung von moo_jo müsste aber auch gehen und du hast nur einen Join anstelle von zwei Selects.Code: Alles auswählen.
for all entries in @lt_itab1-vertragsnummer where dbtab2~vertragsnummer = lt_itab1~vertragsnummer.
Ich habe auch lange Zeit keine rechte Verwendung dafür gesehen. Aber für Performancebeschleunigung über Puffertabellen eignet er sich hervorragend, denn er setzt die Zeilen der internen Tabelle SQL-seitig in den IN-Operator um und kommt in Richtung Datenbank auf diese Weise mit nur einem SELECT aus.moo_jo hat geschrieben:Den Befehl FOR ALL ENTRIES habe ich noch nicht verwendet.
Code: Alles auswählen.
REPORT ZTEST4.
TYPES: BEGIN OF TYPE_M,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
BRGEW LIKE MARA-BRGEW,
NTGEW LIKE MARA-NTGEW,
END OF TYPE_M,
BEGIN OF TYPE_PUFFERTABELLE,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF TYPE_PUFFERTABELLE.
DATA: M TYPE STANDARD TABLE OF TYPE_M WITH EMPTY KEY,
BUFFER_TXT TYPE SORTED TABLE OF TYPE_PUFFERTABELLE WITH UNIQUE KEY MATNR.
FIELD-SYMBOLS <M> TYPE TYPE_M.
*** START-OF-SELECTION ***
START-OF-SELECTION.
** M sei mit Materialnummern und deren Gewichten gefüllt. Jetzt sollen die Texte dazugelesen werden. **
* Weg ohne Puffertabelle
LOOP AT M ASSIGNING <M>.
SELECT SINGLE MAKTX INTO <M>-MAKTX FROM MAKT
WHERE MATNR = <M>-MATNR
AND SPRAS = SY-LANGU.
ENDLOOP.
* Weg mit Puffertabelle
SELECT MATNR MAKTX INTO TABLE BUFFER_TXT FROM MAKT
FOR ALL ENTRIES IN M WHERE MATNR = M-MATNR
AND SPRAS = SY-LANGU.
LOOP AT M ASSIGNING <M>.
<M>-MAKTX = BUFFER_TXT{ MATNR = <M>-MATNR }-MAKTX. " eckige statt der geschweiften Klammern verwenden, aber die kann das Forum nicht richtig darstellen
ENDLOOP.
Code: Alles auswählen.
rsdb/max_blocking_factor
rsdb/min_blocking_factor
rsdb/max_in_blocking_factor
rsdb/min_in_blocking_factor
Folgende Benutzer bedankten sich beim Autor edwin für den Beitrag:
DeathAndPain