Join mit Left Outer Join

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

Join mit Left Outer Join

Beitrag von Rude1986 (ForumUser / 5 / 0 / 0 ) »
join.PNG
Guten Abend,

wie kann ich folgendes "Projekt" realisieren?
Ich habe die FKKVKP, von der zwei Stränge losgehen sollen:
mit Feld FKKVKP-GPART über BUT000 -> ADR2. Das ist kein Problem

Aber wie kann ich realisieren, dass wenn in der FKKVKP das Feld "ABWRH" befüllt ist, ein left outer join über die Felder BUT000->ADR2 erfolgen soll.
Am besten mal das Bild schauen. Hier habe ich über den Quickviewer mal das Beispiel bildlich dargestellt.
Hier mein Entwurf eines ABAP-Codes:

SELECT a~VKONT, a~GPART, b~name_first, b~name_last, a~ABWRH, f~PARTNER, f~name_first, f~name_last
FROM ( ( ( ( ( ( ( ( FKKVKP as a
inner join BUT000 as b on a~GPART = b~PARTNER )
inner join BUT021_fs as c on b~PARTNER = c~PARTNER )
inner join BUT020 as d on c~PARTNER = d~PARTNER )
left outer join ADR2 as e on d~ADDRNUMBER = e~ADDRNUMBER )
left outer join BUT000 as f on a~ABWRH = f~PARTNER )
inner join BUT021_fs as g on f~PARTNER = g~PARTNER )
inner join BUT020 as h on g~PARTNER = h~PARTNER )
left outer join ADR2 as i on h~ADDRNUMBER = i~ADDRNUMBER )
where a~GPART IN @GP
INTO TABLE @i_data.

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


Re: Join mit Left Outer Join

Beitrag von jocoder (Specialist / 338 / 3 / 101 ) »
Dies wäre ein Fall für CDS-Views. Wenn ich deine Frage richtig verstanden habe, wenn ABWRH gefüllt ist, soll immer die FKKVKP mit der BUT000 assoziiert werden (BUT000~PARTNER = FKKVKP~ABWRH), sonst BUT000~PARTNER = FKKVKP~GPART.

Zwei exemplarische CDS-Views, die dieses Verhalten abbilden können:
Ein erster CDS-View bildet die FKKVKP mit dem richtigen Geschäftspartner ab:

Code: Alles auswählen.

define view zfkkvkp as select from fkkvkp {
  key vkont,
  key gpart,
  (case abwrh when '' then gpart else abwrh ) as partner,
  ... // weiter Felder bei Bedarf zu hinzufügen
}
In einem zweiten View kann der so eben erstellte View mit den BUT*-Tabellen assoziiert werden:

Code: Alles auswählen.

define view zfkkvkp_partner as select from zfkkvkp as a
   association to but000 as b0 on b0.partner = a.partner
   association to but021_fs as b21 on b21.partner = a.partner
   association to but020_fs as b20 on b20.partner = a.partner {
   *
}

Seite 1 von 1

Vergleichbare Themen

5
Antw.
9183
Views
LEFT OUTER JOIN
von Bernd » 05.01.2005 10:50 • Verfasst in ABAP® Core
1
Antw.
2203
Views
2
Antw.
4688
Views
interne Tabellen vereinigen (outer join)
von Carlos-X » 01.06.2008 13:18 • Verfasst in ABAP® für Anfänger
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
2
Antw.
1266
Views
Versuch Left Join von 2 auf 3 Tabellen zu erweitern
von Domgr » 10.07.2020 16:59 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140