Join über mehrere Tabellen

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Join über mehrere Tabellen

Beitrag von Bright4.5 (Specialist / 274 / 21 / 1 ) »
Hallo zusammen,

ich hätte mal eine ganz kurze Frage, wie man das folgende Problem elegant lösen könnte:

Ich brauch die folgenden Daten aus der DB-Tabelle AUSP:

ATINN, KLART, ATWRT, ATFLV

so nun bräuchte ich aber auch noch die daten aus dem Feld Class welche aus der DB-Tabelle KLAH kommen.

So nun haben AUSP und KLAH keine direkten Verbindungsfelder, somit müsste ich zuerst über die DB-Tabelle KSSK welche das Feld CLINT hat, mit welcher ich den richtigen Datensatz auch in der KLAH identifizieren könnte. Somit müsste ich von der AUSP mit dem Feld OBJEK zuerst das Feld CLINT in der KSSK selektieren und dann damit in der KLAH das Feld Class selektieren.

Soweit so gut. Ich habe mir hierzu jetzt 2 Selects aufgebaut und zwar so :

Code: Alles auswählen.

SELECT au~objek, au~atinn, au~klart, au~atwrt, au~atflv,
       cb~atbez, ks~clint
  FROM ( ausp AS au INNER JOIN cabnt AS cb ON au~atinn = cb~atinn
                    INNER JOIN kssk AS ks ON au~objek = ks~objek )
  INTO CORRESPONDING FIELDS OF TABLE @gt_collect
  WHERE au~objek IN @so_obj
  AND   au~klart IN @so_klart.

SELECT class
  FROM klah
  INTO gv_class
  FOR ALL ENTRIES IN gt_collect
  WHERE clint = gt_collect-clint.
endselect.
Ich finde die Lösung recht unschön und wollte fragen, ob es möglich wäre so ein Problem mit einem Select über joins zu regeln?

Vielen Dank im Voraus.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Join über mehrere Tabellen

Beitrag von jocoder (Specialist / 343 / 3 / 102 ) »
Die Tabelle KLAH kann in den Join mit eingebunden werden:

Code: Alles auswählen.

SELECT au~objek, au~atinn, au~klart, au~atwrt, au~atflv,
       cb~atbez, ks~clint, ka~clint
  FROM ( ausp AS au INNER JOIN cabnt AS cb ON au~atinn = cb~atinn
                    INNER JOIN kssk AS ks ON au~objek = ks~objek
                    INNER JOIN klah AS ka ON ka~clint = ks~clint )
  INTO CORRESPONDING FIELDS OF TABLE @gt_collect
  WHERE au~objek IN @so_obj
  AND   au~klart IN @so_klart.

Re: Join über mehrere Tabellen

Beitrag von DeathAndPain (Top Expert / 1944 / 257 / 413 ) »
Ein paar Anmerkungen:
  • Die Klammer ist überflüssig.
  • Ich verstehe nicht, weshalb die Leute bei JOINs alle so geil darauf sind, Aliasnamen zu definieren. In meinen Augen macht das den JOIN deutlich schlechter lesbar. Die paar Tastenanschläge mehr für das Ausschreiben der Tabellennamen sollte es einem wert sein, erst recht bei den kurzen Tabellennamen der SAP. Ich verwende Aliasnamen nur dann, wenn dieselbe Tabelle mehrfach gejoint werden soll.
  • Es macht auch keinen Sinn, clint mitzuselektieren, wenn das nur das Bindeglied ist und gar nicht als Ergebnis gebraucht wird. Schon gar nicht zweimal. Dafür hast Du das eigentlich vom Threadersteller benötigte Feld klah~class nicht mitgelesen.
Hier würde ich also schreiben:

Code: Alles auswählen.

SELECT ausp~objek ausp~atinn ausp~klart ausp~atwrt ausp~atflv cabnt~atbez klah~class
  FROM ausp INNER JOIN cabnt ON ausp~atinn = cabnt~atinn
                    INNER JOIN kssk ON kssk~objek = ausp~objek
                    INNER JOIN klah ON klah~clint = kssk~clint
  INTO CORRESPONDING FIELDS OF TABLE gt_collect
  WHERE ausp~objek IN so_obj
  AND   ausp~klart IN so_klart.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
autohandel7


Seite 1 von 1

Vergleichbare Themen

4
Antw.
3050
Views
Tabellen Join
von commolus » 08.06.2012 10:54 • Verfasst in ABAP Objects®
12
Antw.
6920
Views
3 Tabellen-Join
von kaufikauf » 12.08.2014 08:00 • Verfasst in ABAP® für Anfänger
12
Antw.
6333
Views
Inner Join über 4 Tabellen
von falk » 02.03.2006 11:26 • Verfasst in ABAP® Core
4
Antw.
22541
Views
Join über 2 Tabellen
von Patrick Emse » 25.01.2006 10:19 • Verfasst in ABAP® Core
9
Antw.
5414
Views
Problem mit Join von internen & DB-Tabellen
von debianfan » 10.11.2017 09:10 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 21 / 1392
Dialog-Container mit Toolbar/Status
vor 3 Stunden von DeathAndPain gelöst 22 / 2795
Daten an Tabelle binden
vor 8 Stunden von Lukas Sanders 2 / 873
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 429

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 21 / 1392
Dialog-Container mit Toolbar/Status
vor 3 Stunden von DeathAndPain gelöst 22 / 2795
Daten an Tabelle binden
vor 8 Stunden von Lukas Sanders 2 / 873
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 429

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2463
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9049