SELECT mit mehreren LEFT JOINS

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

SELECT mit mehreren LEFT JOINS

Beitrag von ABAPlerv (ForumUser / 84 / 24 / 1 ) »
Hallo zusammen,

Wenn man mehrere Tabelle ( mehr als 2 Tabellen) mit einem LEFT JOIN macht, bekommt man ja öfters mehr Zeilen als die linke Tabelle hat!

Wie kann man das so machen, das genau so vielen Zeilen wie die LINKE Tabelle?
Mit einem DELETE ADJACENT DUPLICATES funktioniert es auch nicht ganz.

Kann man direkt im Select etwas machen? - DISTINCT funktioniert da leider nicht.

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


Re: SELECT mit mehreren LEFT JOINS

Beitrag von bowser (ForumUser / 4 / 0 / 0 ) »
Selektierst du alle Schlüsselfelder der linken Tabelle?
Wenn ja, könntest du DELETE ADJACENT DUPLICATES mit dem Zusatz COMPARING bei der internen Tabelle probieren, die das Ergebnis des Selects enthält. Denke das müsste klappen:

Code: Alles auswählen.

DELETE ADJACENT DUPLICATES FROM itab COMPARING keyfield1 keyfield2 keyfield3. 
Einfach alle Schlüsselfelder der linken Tabelle hinter COMPARING angeben.
Zuvor sollte die interne Tabelle nach den Schlüsselfeldern der linken Tabelle sortiert sein. Das geht ja direkt beim SELECT.

Re: SELECT mit mehreren LEFT JOINS

Beitrag von ABAPlerv (ForumUser / 84 / 24 / 1 ) »
bowser hat geschrieben:
17.09.2022 18:55
Selektierst du alle Schlüsselfelder der linken Tabelle?
Wenn ja, könntest du DELETE ADJACENT DUPLICATES mit dem Zusatz COMPARING bei der internen Tabelle probieren, die das Ergebnis des Selects enthält. Denke das müsste klappen:

Code: Alles auswählen.

DELETE ADJACENT DUPLICATES FROM itab COMPARING keyfield1 keyfield2 keyfield3. 
Einfach alle Schlüsselfelder der linken Tabelle hinter COMPARING angeben.
Zuvor sollte die interne Tabelle nach den Schlüsselfeldern der linken Tabelle sortiert sein. Das geht ja direkt beim SELECT.

Danke, das hatte ich eh auch zuvor. Aber gehts nicht irgendwie schöner? Etwa gleich im Select?

Re: SELECT mit mehreren LEFT JOINS

Beitrag von bowser (ForumUser / 4 / 0 / 0 ) »
ABAPlerv hat geschrieben:
17.09.2022 19:38
Danke, das hatte ich eh auch zuvor. Aber gehts nicht irgendwie schöner? Etwa gleich im Select?
Also ohne das konkrete Beispiel zu kennen wird es schwierig.
Eventuell klappt es mit einer komplizierten Abfrage unter Verwendung von Subquery und GROUP BY.
Aber das wäre aus meiner Sicht nicht schöner als DELETE ADJACENT DUPLICATES.

Re: SELECT mit mehreren LEFT JOINS

Beitrag von LeMinion (ForumUser / 20 / 1 / 6 ) »
Ich denke, das bekommst Du am saubersten mit einem Sub-Select hin. So etwas in der Art:

Code: Alles auswählen.

SELECT *
  FROM table1
  WHERE key1, key2, key3 IN (
    SELECT a~key1, a~key2, a~key3
      FROM table1 AS a
      LEFT JOIN table2 AS b
      ON b~key1 = a~key1
      AND b~key2 = a~key2
      LEFT JOIN table3 AS c
      ON c~key1 = a~key1
      AND c~key3 = a~key3
  )
  INTO TABLE @DATA(result).
Das, was Du beschreibst bzw. was Du gerne als Ergebnis hättest, ist potentiell nicht (so einfach) mit Joins zu erreichen, je nach Szenario.

Re: SELECT mit mehreren LEFT JOINS

Beitrag von A6272 (Specialist / 238 / 8 / 36 ) »
ABAPlerv hat geschrieben:
17.09.2022 16:33
Wie kann man das so machen, das genau so vielen Zeilen wie die LINKE Tabelle?
Das kann nur passieren, wenn Tabelle2(die rechte) die identischen Schlüsselfelder oder weniger hat als die linke Tabelle.

Sobald die Rechte Tabelle die identischen Schlüsselfelder + mindestens 1 weiteres hat wird der View immer mehr Zeilen ausgeben als die LINKE Tabelle.

Duplikate auf Schlüsselfelder der LINKE Tabelle löschen ist da nur bedingt eine Option, da du ggf. die falschen Einträge aus der rechten Tabelle vernichtest.

Da bräuchte man eine konkretere Problemstellung.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1920
Views
Select bei mehreren eindeutigen Werten
von mydigitalme » 07.06.2017 17:38 • Verfasst in ABAP® für Anfänger
5
Antw.
3265
Views
Selektieren nach mehreren Select-Options
von Thanatos82 » 14.09.2012 13:50 • Verfasst in ABAP Objects®
19
Antw.
5761
Views
Joins
von Neu_Im_SAP » 25.07.2011 13:15 • Verfasst in ABAP® für Anfänger
13
Antw.
1438
Views
SQL JOINS
von ABAPlerv » 18.05.2022 14:11 • Verfasst in ABAP® für Anfänger
2
Antw.
508
Views
SHIFT LEFT with space
von HH_ABAP » 23.02.2024 14:22 • 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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1790
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2330

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1790
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2330

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 364
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 964
MS-Word als Editor
letzen Monat von tekko 1 / 4474