dynam. Select mit Join

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

dynam. Select mit Join

Beitrag von madeleine104 (ForumUser / 7 / 4 / 0 ) »
Hallo zusammen,

Vorab: ich bin ABAP-ANfänger!

Folgendes ist die ANforderung:

ich benötige alle Sätze z.B. der Marc und die zum Material passenden Daten aus den Tabellen xy ( und/oder yz oder xz).
Nicht alle MATNR haben Einträge in der XY (und/oder yz und/oder xz). Die, die keine Einträge in der XY (oden / und den anderen Tabellen) haben, sollen in der Ergebnisliste aber auch angezeigt werden.

Dazu habe ich einen dynamischen Select gebastelt (ich weiß erst mal nicht, welche der 3 Zusatztabellen noch im Spiel ist) und die Tabellen mit inner join verbunden.
Wenn es jetzt in der XY keine Einträge gibt zu Material 4711, wird mir Material gar nicht angezeigt. Ich möchte 4711 aber trotzdem sehen.
Wie muss ich den Select/ die Selects gestalten. Mit lesen und über Loop wieder löschen würde mir nicht so gefallen, aber was würde sonst funktionieren?
Für den dynam. Select nutze ich eine Itab, die ich je Bdearf ergänze. -> einen Left outer join hat er deshalb schon angemotzt.
Vielen Dank für eine Rückmeldung :-)

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


Re: dynam. Select mit Join

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Welches Basis-Release setzt ihr ein?
Unter 7.40 (?oder auch schon 7.30?) gibt es eine neue Syntax für SELECT-Statements (mit Beistrich und @-Hostvariablen) die nicht mehr so "streng" bei LEFT OUTER JOINs ist.
Alternative gäbe es unter 7.40 (mit Eclipse IDE) auch die CoreDataServices. Damit lassen sich noch mehr SQL-Funktionen der Datenbank direkt nutzen.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: dynam. Select mit Join

Beitrag von madeleine104 (ForumUser / 7 / 4 / 0 ) »
Hi
700 ist es. Die anderen Dinge (Eclipes, CoreDataServices)sagen mir leider nichts. Wie gesagt -> Anfänger :-(

Grüße :_)

Re: dynam. Select mit Join

Beitrag von madeleine104 (ForumUser / 7 / 4 / 0 ) »
und das sagt der Dump

The reason for the exception is:
The running ABAP program wanted to execute a SELECT statement whose
WHERE condition was (partly) specified dynamically. The part that is
specified in an internal table at runtime is compared to a field of the
right table of an LEFT OUTER JOIN. Such comparisons are not supported by
all database systems and are therefore not allowed.

Re: dynam. Select mit Join

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Wenn es mit dem LEFT OUTER JOIN nicht geht, wirst du wohl oder übel zuerst die MARC lesen müssen und dann die fehlenden Daten aus den anderen Tabellen dazu selektieren. Stichwort FOR ALL ENTRIES IN.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: dynam. Select mit Join

Beitrag von madeleine104 (ForumUser / 7 / 4 / 0 ) »
Hi ADT

auf den Trichter bin ich auch gerade gekommen. Aber ich hab´s nicht nicht probiert.Werde ich jetzt tun.

Ich frage mich, warum es nicht klappt, wie hier beschrieben :
***********************************************
Ergebnismenge beim äußeren Join

Der äußere Join erstellt im Prinzip die gleiche Ergebnismenge wie der innere Join mit dem Unterschied, dass für jede selektierte Zeile der linken Seite mindestens eine Zeile in der Ergebnismenge erzeugt wird, auch wenn keine Zeile der rechten Seite die Bedingung join_cond erfüllt. Die Spalten der rechten Seite, welche die Bedingung join_cond nicht erfüllen, werden mit Null-Werten gefüllt.
***********************************************************
Liegt das daran, dass der dynam. Select via Itab den Outer Join nihct hinkriegt (den Text zum Dump habe ich vorhin gepostet)


Erst mal vielen Dank und Grüße
Madeleine104

Re: dynam. Select mit Join

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Nein. Der Fehler besagt, dass es syntaktisch in SAP (< 7.40) nicht erlaubt ist ein Feld der rechten Tabelle (deren Inhalte ja auch "nicht vorhanden" sein können) eines LEFT OUTER JOINS in der WHERE Bedingung zu verwenden. Wenn du es schaffst dein SELECT-Statement aufzubauen ohne die Ergebnismenge der rechten Tabelle über die WHERE Bedingung einzuschränken, kannst du, wie auch in anderen Sprachen erlaubt, den LEFT OUTER JOIN verwenden.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: dynam. Select mit Join

Beitrag von autohandel7 (Specialist / 186 / 67 / 0 ) »
Probier mal Left Join, soll funktionieren:
SELECT A~matnr B~txt INTO

CORRESPONDING FIELDS OF lt_tab

FROM Marc as A
LEFT OUTER JOIN xy as B

ON A~matnr = B~matnr

where a~matnr in s_matnr.

Re: dynam. Select mit Join

Beitrag von madeleine104 (ForumUser / 7 / 4 / 0 ) »
Hallo
erst mal danke fr die Antworten.
Als "Übergangslösung" mache ich jetzt erst einen Select auf die eine abelle, stelle den Inhalt in eine Interne, Loope über diese und lese aus der anderen die Daten dazu.
Das funktioniert, gefällt mir aber nicht.
Die aufgeführten Lösungsvorschläge werde ich aber auch noch testen.
Auf jeden Fall vielen Dank!
schönes Wochenende und Grüße,
Madeleine

Seite 1 von 1

Vergleichbare Themen

24
Antw.
8267
Views
Select mit join
von Spookykid » 31.03.2011 12:28 • Verfasst in ABAP® für Anfänger
5
Antw.
3665
Views
SELECT - INNER JOIN
von muggel » 03.04.2008 10:41 • Verfasst in ABAP® Core
21
Antw.
10778
Views
Select all bei inner join
von Bright4.5 » 05.09.2018 09:19 • Verfasst in ABAP® für Anfänger
5
Antw.
3515
Views
Dynam. SQL-Anweisung in String
von m.schwertle » 11.01.2008 11:21 • Verfasst in ABAP® Core
2
Antw.
2840
Views
select join substring
von jspranz » 13.11.2017 18:12 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Regex in where
vor 23 Stunden von tar 8 / 368
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 286
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 529

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

Regex in where
vor 23 Stunden von tar 8 / 368
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 286
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 529

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 221
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3403
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9953