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

1
Antw.
2424
Views
2
Antw.
4918
Views
interne Tabellen vereinigen (outer join)
von Carlos-X » 01.06.2008 13:18 • Verfasst in ABAP® für Anfänger
4
Antw.
2507
Views
View 2 Tabellen mit left inner join ?
von Kleenmex » 07.04.2008 13:38 • Verfasst in ABAP® für Anfänger
2
Antw.
1924
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
6
Antw.
867
Views
Inner Join
von L0w-RiDer » 26.03.2021 14:52 • 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

Mahnung erstellen
vor 22 Stunden von wreichelt 2 / 42
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 56
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 34

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

Mahnung erstellen
vor 22 Stunden von wreichelt 2 / 42
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 56
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 34

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
Gestern von Manfred K. 1 / 34
Export von Spools in XLSX
vor 6 Tagen von abapamateur 1 / 449