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.
765
Views
Richtiger join zwischen 5 verschiedenen Tabellen
von JBSchueler » 16.07.2023 20:33 • Verfasst in ABAP® Core
7
Antw.
5480
Views
Where-Bedingungen separieren/ interne Tabellen dynamisch?
von Sako » 07.10.2008 10:25 • Verfasst in ABAP® Core
12
Antw.
6916
Views
3 Tabellen-Join
von kaufikauf » 12.08.2014 08:00 • Verfasst in ABAP® für Anfänger
4
Antw.
3047
Views
Tabellen Join
von commolus » 08.06.2012 10:54 • Verfasst in ABAP Objects®
12
Antw.
6333
Views
Inner Join über 4 Tabellen
von falk » 02.03.2006 11:26 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von ewx 17 / 1040
Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 20 / 2500
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1639

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

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von ewx 17 / 1040
Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 20 / 2500
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1639

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 703
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2333
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8915