Navigation:  Datenzugriff auf SAP > Datenextrakt  >

Join Clause - Inner Join & Left Outer Join

Print this Topic Previous pageReturn to chapter overviewNext page

+++   So können Sie Datras EPTL mit Datras Dynamic ABAP auf Ihrem SAP-System kostenlos testen (Anleitung, Download)   +++   Datras hat die Preise gesenkt   +++

 

s.a. "Wichtige Änderungen ab EPTL 4.0"

 

 

Standard

Extended

 Dynamic

JOIN Clause

 

 

Restriktionen:

In der WHERE-Clause dürfen Felder der Join-Tabelle nicht benutzt werden.
In der On-Clause dürfen nur die Operatoren "=" bzw. "EQ" und "AND" benutzt werden.

Original SAP-Fehlermeldung: "In der ON-Bedingung eines OUTER-Join sind zur Zeit nur Vergleiche mit "=" oder "EQ" zulässig.", quasi "Kollege Operator ist gerade zu Mittagstisch, bitte rufen Sie doch später nochmal an, vielleicht geht ja dann der SAP-Interpreter.

In der ON-Clause kann man auch Felder der Join-Tabelle auf Konstanten vergleichen, z.B. Join-Feld = 'FRANKFURT' .

Nun könnte man ja denken, dass man die Differenz bekommt, wenn man die Join-Felder auf ihre Initialwerte abtestet, also welche Datensätze sind in der linken, aber nicht in der rechten Tabelle enthalten. Dem ist aber leider nicht so: falls man ein Join-Feld in der ON-Clause auf Initialwerte abfrägt, macht der SAP-Interpreter einen DISTINCT auf die linke Tabelle, oder so etwas ähnliches, jedenfalls keine Differenz.

 

 Wichtig:

Eigentlich ist die SAP-Implementierung des Left Outer Join ziemlich unnütz, denn genau das Interessante an einem Left Outer Join, nämlich herauszufinden, welche Datensätze sind in der linken, aber nicht in der rechten Tabelle vorhanden, geht halt in SAP nicht.

Im EPTL kann man jedoch durch einen Trick auch diese Datensätze herausfinden: Man macht einen Left Outer Join und testet dann mit einer Rule ein Join-Feld, welches aber ein Key-Feld sein muss, auf seinem Initialwert ab. (s. Demo-Ressourcen: SAP-Dynamic } Left Outer Join (2) ).