wählen Sie mehr Feld innerhalb eines select-sap abap
und ein neues problem 🙂
Ich Schaffe das nicht, die Auswahl mit mehr wählt und eine Schleife. 4 Tabellen ( die Letzte war nur für das sammeln aller Daten )
Aber jetzt bin ich denken, ein Weg, um wählen Sie alle Felder, die ich mit einer select-Anweisung. Hier ist die riesige Auswahl 🙂
SELECT vbak~vbeln vbak~audat
tvakt~bezei
vbap~posnr vbap~matnr vbap~kwmeng vbap~vrkme
lips~vbeln lips~posnr lips~werks lips~lfimg
vbfa~vbtyp_n
FROM vbak JOIN vbap ON vbak~vbeln = vbap~vbeln
JOIN tvakt ON vbak~auart = tvakt~auart
LEFT JOIN vbfa ON vbfa~vbelv = vbak~vbeln AND vbfa~posnv = vbap~posnr
JOIN lips ON vbfa~vbeln = lips~vbeln AND vbfa~posnn = lips~posnr
INTO TABLE gt_salord
WHERE tvakt~spras = 'EN' AND
vbak~vbeln IN s_vbeln AND
vbak~audat IN s_audat.
Das problem ist das funktioniert nicht. Wenn ich versuche, zu aktivieren, es wirft diese Fehlermeldung: "Nicht zu vergleichen mit "VBAP~POSNR". Einer Tabelle können verbunden werden mit maximal einer anderen Tabelle mit LEFT OUTER JOIN"
Wenn ich nicht verwenden, LEFT JOIN und nur BEITRETEN, es funktioniert, aber ich bekomme nicht alles was ich will. Ich brauchen, um alle Kundenaufträge, auch wenn Sie nicht haben eine LIEFERUNG AUFTRAG zugeordnet. Gibt es eine Möglichkeit, das zu tun, oder muss ich wirklich mein split wählen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich bemerkt, in SAP, die es effizienter zu vereinfachen, werden select-Anweisungen, und fahren Sie mit der SCHLEIFE und WÄHLEN Sie SINGLE für die Tabelle, die nicht an der Auswahl der Daten.
In deinem Fall die Daten aus der Tabelle VBFA sein könnte, Holen Sie nach Auswahl der Daten (es ist keine Beschränkung der Menge der abgerufenen Daten aus der DB).
Natürlich hängt es von Indizes, application server Pufferung... aber, auch wenn es sein mag counter-intuitive, für die SQL-Experten, halten Sie select-Anweisungen nicht zu Komplex in SAP ist das beste.
Können Sie versuchen, die folgenden Auswahl:
Kann ich nicht testen, mit dem Ergebnis, aber die syntax-Prüfung sagen: ok.
Es gibt nur einen winzigen Unterschied:
Im Vergleich
vbfa~vbelv
mitvbak~vbeln
Tue ich esvbap~vbeln
. Beide haben den gleichen Wert, aber in deron
-Klausel, die Sie verwenden, wiedervbap
.Ich weiß nicht, über SAP-Abap . Aber aus SQL-Sicht, die Sie verwenden können, abgeleitet Abfrage, wenn es unterstützt wird, in SAP.
hier einige Ansatz :
Dieses Posting als Frage markiert ist als SQL. Hoffe, es funktioniert
Versuchen, ändern Sie die Reihenfolge der Felder der Tabelle in der on-Klausel left join. Setzen vbap~vbeln = vbfa~vbelv