Join über 2 Tabellen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Join über 2 Tabellen

Beitrag von Patrick Emse ( / / 0 / 3 ) »
Hallo,

ich habe folgendes Problem und hoffe ihr könnt mir helfen:

Ich habe 2 Tabellen:

Tabelle A: Kunden
Tabelle B: weitere Attribute von Kunden (Eintrag optional)

Ich möchte nun mittels eines Joins alle Kundennummern aus Tabelle A, die entweder in der Tabelle B in einem Feld den Wert X haben, oder die keinen Eintrag in der Tabelle B haben.

Wie mache ich das per JOIN?

Vielen Dank :-)
Patrick

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


Beitrag von Grey_M (ForumUser / 21 / 0 / 0 ) »
Morgen,

Code: Alles auswählen.

select tabellea~kundennummer tabelleb~b1 tabelleb~b2
       tabelleb~b3
  from tabellea inner join tabelleb 
    on tabellea~kundennummer = tabelleb~kundennummer into corresponding fields of table tab_kunden
  where .......
Ich gehe mal davon aus, dass dasd Feld kundennummer der Primärschlüssel deiner TabelleA und TabelleB ist.

tab_kunden ist eine interne Tabelle

und die where Klausel must du anpassen.

Beitrag von janfri (ForumUser / 16 / 0 / 0 ) »
Hallo Patrick,

wenn ich Dich richtig verstehe brauchst Du "left outer join"...
Ansonsten geht der Vorschlag von Grey_M aber in die richtige Richtung.

Gruß,
janfri

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
HI.

In diesem Fall brauchst du mehr als nur einen Selekt.

1) alle mit Tab-B-FeldX = X

Code: Alles auswählen.

Select  deine_felder
From    tab-a
join    tab-b
  on    tab-a~key = tab-b~key
into  table itab
where tab-b~feld = x .
2) alle Kunden wo KEINEN Eintrag in Tab-B haben

Code: Alles auswählen.

Select felder_von_tab_a key_feld_von_tab_b
From    tab-a
left outer join tab-b
  on    tab-a~key = tab-b~key
into table itab_2
delete itab_2 where key_feld_von_tab_b NE space.
damit müsste es klappen.

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Hallo Patrick

folgendes Beispielcoding sollte dir helfen:

Code: Alles auswählen.

SELECT           kna1~kunnr as kunnr
     INTO        CORRESPONDING FIELDS OF TABLE ITDATA
     FROM        KNA1         AS   KNA1
     WHERE       KNA1~KUNNR   IN   S_KUNNR
     AND
     (   NOT EXISTS
         ( SELECT   MANDT
             FROM   KNB1 AS KNB1_NOTEXISTS
             CLIENT SPECIFIED
             WHERE  KNB1_NOTEXISTS~MANDT   EQ   KNA1~MANDT
               AND  KNB1_NOTEXISTS~KUNNR   EQ   KNA1~KUNNR
         )
       or
         EXISTS
         ( SELECT   MANDT
             FROM   KNB1 AS KNB1_VALUE
             CLIENT SPECIFIED
             WHERE  KNB1_VALUE~MANDT   EQ   KNA1~MANDT
               AND  KNB1_VALUE~KUNNR   EQ   KNA1~KUNNR
*              * hier speziellen Wert angeben
               AND  KNB1_VALUE~BUKRS   EQ   '    '
         )
     )
      .   "end of select
mfg dele

Seite 1 von 1

Vergleichbare Themen

12
Antw.
7213
Views
3 Tabellen-Join
von kaufikauf » 12.08.2014 08:00 • Verfasst in ABAP® für Anfänger
4
Antw.
3213
Views
Tabellen Join
von commolus » 08.06.2012 10:54 • Verfasst in ABAP Objects®
12
Antw.
6492
Views
Inner Join über 4 Tabellen
von falk » 02.03.2006 11:26 • Verfasst in ABAP® Core
2
Antw.
550
Views
Join über mehrere Tabellen
von Bright4.5 » 09.07.2021 10:47 • Verfasst in ABAP® für Anfänger
9
Antw.
5692
Views
Problem mit Join von internen & DB-Tabellen
von debianfan » 10.11.2017 09:10 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

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.