SAP Jobsuche bei DV-Treff
snp_tbarz
  • snp_tbarz
  • SAP Forum - Neuling Thema Starter
vor 7 Jahre
Hi,

ich habe folgendes Problem und hoffe, dass mir jemand weiterhelfen kann. Ich denke, ich bin bereits zu weit in den Wald gelaufen 😎.

Ich möchte einen Join über mehrere Tabellen machen. In Tabelle A stehen alle Werte, die überhaupt in Betracht kommen, die Grundmenge sozusagen, und andere nicht in Betracht kommende Werte. In Tabelle B stehen ebenfalls all diese Werte, außer die anderen nicht in Betracht kommenden. In Tabelle C steht eine Teilmenge von Tabelle B. Das Ziel ist es die Tabelle B auf die gleiche Teilmenge C zu bekommen. Ich hoffe der Interessierte konnte bis hierhin folgen 😕.

Ich möchte mit einem Join eine interne Tabelle derart befüllen, dass ich die Teilmenge B minus C in dieser internen Tabelle verfügbar habe. Zur Veranschaulichung ein Beispiel.

A

Nummer

4711

4712

4713

0815

B

Nummer

4711

4712

4713

C

Nummer

4711

4712

itab (Ziel)

Nummer

4713

Wie muss mein Join aussehen, damit ich diese Nummer bekomme? Folgendes Gerüst habe ich bereits erstellt. Die Try-Catch-Anweisung habe ich mal zur Vereinfachung weggelassen. Ebenfalls habe ich die Konditionen der Where-Bedingung weggelassen.


TRY.
  SELECT b-Nummer
    FROM ( a
    INNER JOIN b
    ON b-Nummer = a-Nummer )
    LEFT OUTER JOIN c
    ON c-Nummer = b-Nummer AND
       b-Nummer = SPACE
    WHERE [...]
    INTO TABLE @itab.
  CATCH.
  ENDTRY.

Das Resultat sind allerdings 2 Einträge der Tabelle B. Was mache ich falsch?

Liebe Grüße und Danke für die Unterstützung.

Förderer

Shorty
vor 7 Jahre
Hallo snp_tbarz,

versuch mal folgendes

SELECT b-Nummer

FROM ( a INNER JOIN b ON b-Nummer = a-Nummer )

LEFT OUTER JOIN c ON c-Nummer = b-Nummer

WHERE b-Nummer IS INITIAL [...]

INTO TABLE @itab.

P.S. ich hab's nicht getestet

Gruß Shorty


SAP S/4HANA 1809

Userbetreuung und Customizing in den Modulen SD, CS, QM, MM, WM

, ABAP, SAPScript,AdobeForms und Berechtigungen

snp_tbarz
  • snp_tbarz
  • SAP Forum - Neuling Thema Starter
vor 7 Jahre
Hi Shorty,

danke für Deine Antwort.

Ich habe es ebenfalls ähnlich mit IS NULL gelöst und es funktioniert.

Beste Grüße