Code: Alles auswählen.
TYPES: BEGIN OF r_itab,
  matnr TYPE vbap-matnr,
  kunnr TYPE vbak-kunnr,
  vbeln TYPE vbup-vbeln,
       END OF r_itab.
DATA: lt_itab TYPE TABLE OF r_itab.
SELECT vbap~matnr vbak~kunnr vbup~vbeln
  INTO CORRESPONDING FIELDS OF TABLE lt_itab
  FROM vbup AS vbup
  INNER JOIN vbap AS vbap ON vbup~vbeln EQ vbap~vbeln
  INNER JOIN vbak AS vbak ON vbup~vbeln EQ vbak~vbeln
  WHERE vbup~lfsta EQ 'A'.
Folgende Benutzer bedankten sich beim Autor Bugfix13 für den Beitrag: 
			Papst BenR
			
 
 Code: Alles auswählen.
    SELECT vbap~matnr vbak~kunnr vbup~vbeln
      INTO table lt_itab
      FROM vbup AS vbup
      INNER JOIN vbap  EQ vbap~vbeln
      INNER JOIN vbak  EQ vbak~vbeln
      WHERE vbup~lfsta EQ 'A'.
Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag: 
			Papst BenR
			
Darüber streiten sich die GeisterTron hat geschrieben:Moin.
das ist erheblich performanter.

 
  
 
 
 Ich frag mal doof: Warum vergibst du Aliase, wenn die doch den gleichen Namen haben wie die Tabelle? Also "VBUP AS VBUP"? Dann kann man das auch weglassen....
 Ja die kann man natürlich auch weglassen! Dachte immer die braucht es ^^..
  Ja die kann man natürlich auch weglassen! Dachte immer die braucht es ^^..
 
 Code: Alles auswählen.
* Datendeklarationen
*   Object Map
    data: lo_object_map type ref to cl_object_map.
*   Business-Objekt-Referenz
    data: lo_auftrag type ref to zvg_bo_auftrag.
*   Interne Tabelle vom Typ ZVG__ST_AUFTRAG
    data: lt_auftraege type table of zvg_st_auftrag.
*   Field-Symbol für einen Datensatz
    field-symbols: <auftrag> type zvg_ST_AUFTRAG.
*   Erzeugen der Object-Map
    create object LO_OBJECT_MAP.
*   Datenbankselektion
    SELECT vbap~matnr
           vbak~kunnr
           vbup~vbeln
           vbap~erdat
      INTO CORRESPONDING FIELDS OF TABLE lt_auftraege
      FROM vbup AS vbup
        INNER JOIN vbap AS vbap ON vbup~vbeln EQ vbap~vbeln
        INNER JOIN vbak AS vbak ON vbup~vbeln EQ vbak~vbeln
      WHERE vbup~lfsta EQ 'a'.
*   Befüllen der Objekt-Map im Loop
    loop at LT_AUFTRAEGE ASSIGNING <AUFTRAG>.
      create OBJECT LO_AUFTRAG.
      if LO_AUFTRAG is BOUND.
        LO_AUFTRAG->SET_DATA( IS_DATA = <AUFTRAG> ).
        LO_OBJECT_MAP->PUT( key = <AUFTRAG>-VBELN
                            value = LO_AUFTRAG ).
      endif.
      clear LO_AUFTRAG.
     endloop.
*   Belege Rückgabestrukur
    RETURN ?= LO_OBJECT_MAP.
