Warum bleibt Spalte leer? Select innerjoin

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

Warum bleibt Spalte leer? Select innerjoin

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo,

es ergibt für mich keinen Sinn, warum die Spalte Werk leer bleibt, wenn ich innerJoin mache und gefüllt wird, wenn ich den Join weglasse.
Es kann doch nicht an der Reihenfolge der Felder liegen oder? Oder daran, dass ich die Felder nicht einzeln benenne. Die Anzahl der Felder aus der Mkol
sind ellenlang und das wollte ich mit den * umgehen.
Ich brauche nur das eine Feld aus der LFA1 nämlich den Namen. Und deswegen wollte ich das mit einem Join lösen.
die Itab sieht folgendermaßen aus:

Code: Alles auswählen.

TYPES: BEGIN OF ty_mkol.
        INCLUDE TYPE mkol.
TYPES: name1 TYPE name1_gp.

Code: Alles auswählen.

SELECT * FROM mkol
        INNER JOIN lfa1
    ON mkol~lifnr = lfa1~lifnr
    INTO CORRESPONDING FIELDS OF TABLE lt_mkol
       WHERE mkol~werks = p_werks
         AND mkol~lgort = p_lgort
         AND mkol~slabs > 0.
Bin für Hilfe sehr dankbar.

Viele Grüße
coco

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


Re: Warum bleibt Spalte leer? Select innerjoin

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hallo c oco,

die Spalte WERKS ist mehrdeutig, da sie sowohl in MKOL, als auch in LFA1 vorkommt. Beim Ergebnis ist die Spalte WERKS nur scheinbar leer, in Wirklichkeit enthält sie Werte aus LFA1. Dreh den JOIN um und du merkst den Unterschied :-)

Code: Alles auswählen.

    SELECT * FROM lfa1
            INNER JOIN mkol
        ON mkol~lifnr = lfa1~lifnr
        INTO CORRESPONDING FIELDS OF TABLE lt_mkol
           WHERE mkol~werks = p_werks
             AND mkol~lgort = p_lgort
             AND mkol~slabs > 0.
das ist übrigens einer der Gründe, warum ich so ungern mit SELECT * arbeite. Man hat eben nicht die volle Kontrolle/Überblick darüber welche Werte man gerade ausliest
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: Warum bleibt Spalte leer? Select innerjoin

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo Alexander,

danke für den Hinweis.
Dann kann ich es in diesem Fall nur sinnvoll verwenden, wenn ich alle Felder explizit anspreche ( ist mühsam bei der Tabelle mkol) oder ich müsste kucken, welche Felder tatsächlich
gebraucht werden oder ich mache einen zweiten Select und führe die Inhalte im 2. Step zusammen.

Du hast mir auf jeden Fall sehr geholfen.

Danke!

Viele Grüße
coco

Re: Warum bleibt Spalte leer? Select innerjoin

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
freut mich weitergeholfen zu haben :-)

ich würde mich für diesen Weg hier entscheiden:
c oco hat geschrieben:...oder ich müsste kucken, welche Felder tatsächlich
gebraucht werden...
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: Warum bleibt Spalte leer? Select innerjoin

Beitrag von a-dead-trousers (Top Expert / 4477 / 229 / 1203 ) »
Das ist besonder in Bezug auf Performance wichtig.
Denn, wenn man die Anzahl Felder bei einer Abfrage verringern kann, wird die DB weniger beansprucht weil weniger Daten im Endeffekt selektiert werden müssen und die Datenmenge die übertragen wird verkleinert sich ebenfalls.
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: Warum bleibt Spalte leer? Select innerjoin

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Normalerweise, wenn ich es selber codiere achte ich auch darauf und weiß auch welche Felder ich benötige.
Hierbei habe ich den Code übernommen und er muss überarbeitet werden. Daher habe ich im ersten Step
es dabei belassen. Aber es stimmt, aus Performancetechnischer Sicht ist es besser nur die aus der DB zu holen,
die benötigt werden.

Gruß
coco

Seite 1 von 1

Vergleichbare Themen

0
Antw.
3271
Views
11
Antw.
4605
Views
Wenn feld in Tabelle leer ist anderen Select ausführen
von f.weissenberger » 15.03.2021 10:46 • Verfasst in ABAP® für Anfänger
16
Antw.
6446
Views
Brauche Hilfe für Datenbankabfrage mit InnerJoin
von thomasxy » 01.02.2008 08:09 • Verfasst in ABAP® für Anfänger
5
Antw.
3977
Views
Excel-Prozess bleibt bestehen
von s_arnold » 31.08.2006 10:37 • Verfasst in ABAP® Core
0
Antw.
1560
Views
Einspielen von SP bleibt beim Modifikationsabgleich hängen
von vhoffe » 12.02.2007 10:19 • Verfasst in Basis

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Prüfzeugnisse Anlagen finden
vor 12 Stunden von ewx 1 / 22
Zukunft des ABAP Entwicklers
vor 4 Tagen von ralf.wenzel 6 / 368
HR in der Zukunft?
vor 4 Tagen von waltersen 5 / 2540
VS Code statt Eclipse
vor 5 Tagen von rob_abc 3 / 163
Dynamischer Titel in CL_GUI_COLUMN_TREE
vor einer Woche von sapdepp 6 / 261

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

Prüfzeugnisse Anlagen finden
vor 12 Stunden von ewx 1 / 22
Zukunft des ABAP Entwicklers
vor 4 Tagen von ralf.wenzel 6 / 368
HR in der Zukunft?
vor 4 Tagen von waltersen 5 / 2540
VS Code statt Eclipse
vor 5 Tagen von rob_abc 3 / 163
Dynamischer Titel in CL_GUI_COLUMN_TREE
vor einer Woche von sapdepp 6 / 261

Unbeantwortete Forenbeiträge

Prüfzeugnisse Anlagen finden
vor 12 Stunden von ewx 1 / 22
XSLT und Loipro05 Transformation
letzen Monat von Torsten1965 1 / 6154
VOLL Artikel in einem Display Typ 12
November 2025 von ThomasM84 1 / 23836