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 / 1952 / 259 / 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.
3056
Views
Tabellen Join
von commolus » 08.06.2012 10:54 • Verfasst in ABAP Objects®
12
Antw.
6929
Views
3 Tabellen-Join
von kaufikauf » 12.08.2014 08:00 • Verfasst in ABAP® für Anfänger
12
Antw.
6334
Views
Inner Join über 4 Tabellen
von falk » 02.03.2006 11:26 • Verfasst in ABAP® Core
4
Antw.
22546
Views
Join über 2 Tabellen
von Patrick Emse » 25.01.2006 10:19 • Verfasst in ABAP® Core
9
Antw.
5419
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

Regex in where
vor einer Stunde von tar 6 / 97
Programm anlegen mit Vorlage
vor 16 Stunden von DeathAndPain 2 / 117
IT0024 Qualifikationen CP-ID
vor 16 Stunden von DeathAndPain 2 / 352
BUSOBJEKT zu CMIS PHIO ermitteln
vor 18 Stunden von snooga87 1 / 85

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

Regex in where
vor einer Stunde von tar 6 / 97
Programm anlegen mit Vorlage
vor 16 Stunden von DeathAndPain 2 / 117
IT0024 Qualifikationen CP-ID
vor 16 Stunden von DeathAndPain 2 / 352
BUSOBJEKT zu CMIS PHIO ermitteln
vor 18 Stunden von snooga87 1 / 85

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 18 Stunden von snooga87 1 / 85
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821