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 / 4399 / 223 / 1182 ) »
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.
842
Views
11
Antw.
2027
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
6
Antw.
2389
Views
alv list spalte mir select-liste ausstatten
von the-FoX » 12.07.2005 17:13 • Verfasst in ABAP Objects®
16
Antw.
5755
Views
Brauche Hilfe für Datenbankabfrage mit InnerJoin
von thomasxy » 01.02.2008 08:09 • Verfasst in ABAP® für Anfänger
3
Antw.
2131
Views
select von drei Tabellen mit nur einer gemeinsamen Spalte
von robin1at » 04.01.2006 10:06 • 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

Regex in where
vor 8 Stunden von edwin 7 / 166
Daten an Tabelle binden
vor 22 Stunden von Bright4.5 3 / 1487

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 8 Stunden von edwin 7 / 166
Daten an Tabelle binden
vor 22 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822