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 / 265 / 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 / 338 / 3 / 101 ) »
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 / 1795 / 213 / 396 ) »
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.
2630
Views
Tabellen Join
von commolus » 08.06.2012 10:54 • Verfasst in ABAP Objects®
12
Antw.
6101
Views
3 Tabellen-Join
von kaufikauf » 12.08.2014 08:00 • Verfasst in ABAP® für Anfänger
12
Antw.
5945
Views
Inner Join über 4 Tabellen
von falk » 02.03.2006 11:26 • Verfasst in ABAP® Core
4
Antw.
22197
Views
Join über 2 Tabellen
von Patrick Emse » 25.01.2006 10:19 • Verfasst in ABAP® Core
4
Antw.
2139
Views
View 2 Tabellen mit left inner join ?
von Kleenmex » 07.04.2008 13:38 • Verfasst in ABAP® für Anfänger

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.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141