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 / 343 / 3 / 102 ) »
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.
9485
Views
LEFT OUTER JOIN
von Bernd » 05.01.2005 10:50 • Verfasst in ABAP® Core
1
Antw.
2362
Views
2
Antw.
4868
Views
interne Tabellen vereinigen (outer join)
von Carlos-X » 01.06.2008 13:18 • Verfasst in ABAP® für Anfänger
4
Antw.
2372
Views
View 2 Tabellen mit left inner join ?
von Kleenmex » 07.04.2008 13:38 • Verfasst in ABAP® für Anfänger
2
Antw.
1817
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

Dialog-Container mit Toolbar/Status
vor 13 Stunden von DeathAndPain gelöst 22 / 3150
Daten an Tabelle binden
vor 18 Stunden von Lukas Sanders 2 / 1036
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 613

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

Dialog-Container mit Toolbar/Status
vor 13 Stunden von DeathAndPain gelöst 22 / 3150
Daten an Tabelle binden
vor 18 Stunden von Lukas Sanders 2 / 1036
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 613

Unbeantwortete Forenbeiträge

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