JOIN über 2 Tabellen mit verschiedenen Bedingungen

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

JOIN über 2 Tabellen mit verschiedenen Bedingungen

Beitrag von Patrick1982 (ForumUser / 33 / 4 / 0 ) »
Moin,

nachdem ich mir jetzt den halben Arbeitstag sämtliche Hilfen und Dokus über JOINs durchgelesen habe und ich es einfach noch immer nicht kapiert habe, brauche ich jetzt doch eure Hilfe.
Und zwar geht es um folgenden einfachen Sachverhalt (für viele von euch wahrscheinlich ein Klacks):

Ich habe zwei DB-Tabellen (ich benenne der Einfachheit halber alles mal mit echtem Namen):
EIDESWTDOC und EIDESWTMSGDATA.
In der ..DOC sind Kopfdaten zu Belegen enthalten und in der ..DATA Positionsdaten mit einer 1:n-Beziehung. Also zu jedem Eintrag in der DOC gibt es einen oder mehrere Einträge in der DATA.

Nun möchte ich die Anzahl der Einträge in der DATA ermitteln, die dort einer bestimmten Bedingung unterliegen, und zwar CATEGORY = 'E02'.
Natürlich nur die Anzahl der Einträge, die zu den in der DOC ermittelten Kopfdaten passen, die wiederum mit einer anderen Bedingung selektiert werden sollen, und zwar PARTNER = lv_gpart.

Bisher habe ich das über zwei SELECTs realisiert:

Code: Alles auswählen.

SELECT SINGLE switchnum FROM eideswtdoc INTO lv_switchnum WHERE partner EQ lv_gpart.
SELECT COUNT(*) FROM eideswtmsgdata WHERE switchnum EQ lv_switchnum AND category EQ ‘E02‘.
Das möchte ich jetzt in einen JOIN zusammenfassen (wäre hier natürlich nicht wirklich nötig, aber ich möchte das Prinzip für die Zukunft einmal richtig verstanden haben und ich habe auch noch weitere Anwendungsfälle, in denen es noch sinnvoller ist).
Wie würde dieser lauten?
Mein Beginn ist folgender:

Code: Alles auswählen.

SELECT COUNT(*) FROM eideswtdoc
INNER JOIN eideswtmsgdata ON eideswtmsgdata~switchnum = eideswtdoc~switchnum
Aber wie geht’s jetzt weiter? Wo und wie schreibe ich die Bedingung für den ersten Select auf die DOC und den zweiten Select auf die DATA?
Ich hoffe, ihr könnt mir helfen :-)

Besten Dank,
Patrick

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


Re: JOIN über 2 Tabellen mit verschiedenen Bedingungen

Beitrag von Legxis (Specialist / 160 / 90 / 28 ) »

Code: Alles auswählen.

SELECT COUNT(*) 
  FROM eideswtdata AS data
  INNER JOIN eideswtmsgdoc AS head ON head~switchnum = data~switchnum
 WHERE head~partner EQ lv_gpart
   AND data~category EQ ‘E02‘
 INTO lv_count.
Pseudocode, sollte aber korrekt sein wenn ich das richtig verstehe
Zuletzt geändert von Legxis am 06.03.2020 14:32, insgesamt 1-mal geändert.
( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

Re: JOIN über 2 Tabellen mit verschiedenen Bedingungen

Beitrag von jocoder (Specialist / 343 / 3 / 102 ) »

Code: Alles auswählen.

TYPES: BEGIN OF _result,
  switchnum TYPE eideswtdoc-switchnum,
  count TYPE i,
END OF _result.
DATA: result TYPE TABLE OF _result.

SELECT eideswtdoc~switchnum, COUNT(*) AS count FROM eideswtdoc
INTO CORRESPONDING FIELDS OF TABLE @result
INNER JOIN eideswtmsgdata ON eideswtmsgdata~switchnum = eideswtdoc~switchnum
WHERE eideswtdoc~partner = lv_gpart AND eideswtmsgdata~category = '02'
GROUP BY eideswtdoc~switchnum.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
975
Views
Richtiger join zwischen 5 verschiedenen Tabellen
von JBSchueler » 16.07.2023 20:33 • Verfasst in ABAP® Core
7
Antw.
5546
Views
Where-Bedingungen separieren/ interne Tabellen dynamisch?
von Sako » 07.10.2008 10:25 • Verfasst in ABAP® Core
4
Antw.
3147
Views
Tabellen Join
von commolus » 08.06.2012 10:54 • Verfasst in ABAP Objects®
12
Antw.
7087
Views
3 Tabellen-Join
von kaufikauf » 12.08.2014 08:00 • Verfasst in ABAP® für Anfänger
4
Antw.
22660
Views
Join über 2 Tabellen
von Patrick Emse » 25.01.2006 10:19 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Mahnung erstellen
vor 9 Stunden von wreichelt 2 / 32
Absprung VA02 Position
vor 11 Stunden von gs3rr4 gelöst 3 / 41
OPD Druck im SPOOL
vor 13 Stunden von Manfred K. 1 / 25

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 9 Stunden von wreichelt 2 / 32
Absprung VA02 Position
vor 11 Stunden von gs3rr4 gelöst 3 / 41
OPD Druck im SPOOL
vor 13 Stunden von Manfred K. 1 / 25

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 13 Stunden von Manfred K. 1 / 25
Export von Spools in XLSX
vor 5 Tagen von abapamateur 1 / 425