Inner Join

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

Inner Join

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hallo zusammen,

weiß vielleicht jemand was hier an meinem Inner Join falsch ist??

Vielen Dank im Voraus,

Code: Alles auswählen.

    SELECT lq~lqnum, lq~matnr, lq~werks, lq~lgort, lq~bdatu,
         mar~mtart, lq~lgtyp, mac~minbe, mac~bstfe, lq~verme, mak~maktx
    FROM ( lqua AS lq INNER JOIN mara AS mar ON lq~matnr = mar~matnr
                      INNER JOIN marc AS mac ON lq~matnr = mac~matnr
                                            AND lq~werks = mac~werks
                      INNER JOIN makt AS mak ON lq~matnr = mak~matnr )
    INTO CORRESPONDING FIELDS OF TABLE @gt_collect
    WHERE lq~matnr IN @so_matnr
    AND   lq~werks IN @so_werks
    AND   lq~lgort IN @so_lgort
    AND   lq~bdatu IN @so_bdatu
    AND   mar~mtart IN @so_mtart
    AND   lq~lgtyp IN @so_lgtyp
    AND   mak~spras = 'D'.
Zuletzt geändert von L0w-RiDer am 29.03.2021 15:39, insgesamt 2-mal geändert.

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


Re: Inner Join

Beitrag von Alpmann (ForumUser / 62 / 5 / 19 ) »
Hallo L0w-RiDer,

schon geprüft, ob es in der MAKT auch wirklich für jede MATNR eine Kurzbezeichnung in deutsch gibt?

Abfrage sieht okay aus. Wobei ich nie die MAKT mit einem Join verbinden würde - aufgrund der Tatsache dass bei mehreren Werken (bei uns z. B. ind DE und RO) nicht zwingend die Kurztexte immer in DE und RO da sind.

Mit freundlichen Grüßen
Matthias Alpmann

Re: Inner Join

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Hallo Alpmann,

ja, Text in der Makt ist vorhanden.

Das komische ist, dass wenn ich im Programm in der Selektion nur die Materialnummer eingebe, dann liefert er mir einen Datensatz mit dem Werk 1110.
Sobald ich das Werk 1210 eingebe, findet er keinen Datensatz mehr.

Ich finde den Fehler einfach nicht. Für mich sieht da alles gut aus ....

Re: Inner Join

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin.
Ich habe mir angewöhnt, Joins mit (> 2 Tabellen) der SQVI zu erstellen.
Das geht am Schnellsten , erspart mir die Tip Arbeit und liefert mir schnell Ergebnisse (oder Erkenntnisse , z.B. das man BSEG nicht joinen kann, oder Feldlängen nicht matchen ).

Zuerst testet man den Join, ob er überhaupt das zeigt, was man möchte. Wenn man zufrieden ist, übernimmt man das coding,

Der Trick besteht nun darin, das man über den Eingabebildschirm in das Coding springen kann (/nSE38) und der Programname schon bereits da steht. (e.g. AQW8SYSTQV001030ZCHANGELOG====)
Im Anzeigemodus sucht man die Stelle für den Funktionsbaustein mit der Endung *EXTR
e.g.

Code: Alles auswählen.

start-of-selection.
  if %runmode-extr_on <> space.
    call function '/1BCDWB/IQ000000026033EXTR'
und doppelclick drauf, navigiert dich direkt zum Join coding,

Code: Alles auswählen.

e.g.
  if %rtmode-pack_on = space or %rtmode-first_call = 'X'.
    if not %dbcursor is initial.
      close cursor %dbcursor.
    endif.
    open cursor with hold %dbcursor for
    select CDHDR~OBJECTCLAS CDHDR~OBJECTID CDHDR~UDATE CDHDR~UTIME CDHDR~TCODE CDHDR~USERNAME CDPOS~OBJECTCLAS CDPOS~OBJECTID
           CDPOS~CHANGENR CDPOS~TABNAME CDPOS~TABKEY CDPOS~FNAME CDPOS~CHNGIND CDPOS~TEXT_CASE CDPOS~UNIT_OLD CDPOS~UNIT_NEW
           CDPOS~CUKY_OLD CDPOS~CUKY_NEW CDPOS~VALUE_NEW CDPOS~VALUE_OLD CDPOS~_DATAAGING
    from ( CDHDR
           inner join CDPOS
           on  CDPOS~CHANGENR = CDHDR~CHANGENR
           and CDPOS~OBJECTCLAS = CDHDR~OBJECTCLAS
           and CDPOS~OBJECTID = CDHDR~OBJECTID )
         where CDHDR~OBJECTCLAS in SP$00001
           and CDHDR~OBJECTID in SP$00002
           and CDHDR~USERNAME in SP$00003 .
  endif.

  if %dbcursor is initial.
    raise cursor_not_open.
  endif.

  while %l_no_further_fetch = space.
    fetch next cursor %dbcursor
    into (CDHDR-OBJECTCLAS , CDHDR-OBJECTID , CDHDR-UDATE , CDHDR-UTIME , CDHDR-TCODE , CDHDR-USERNAME , CDPOS-OBJECTCLAS
        , CDPOS-OBJECTID , CDPOS-CHANGENR , CDPOS-TABNAME , CDPOS-TABKEY , CDPOS-FNAME , CDPOS-CHNGIND , CDPOS-TEXT_CASE
        , CDPOS-UNIT_OLD , CDPOS-UNIT_NEW , CDPOS-CUKY_OLD , CDPOS-CUKY_NEW , CDPOS-VALUE_NEW , CDPOS-VALUE_OLD , CDPOS-_DATAAGING

Teile können nun in Dein coding übernommen werden, mit der Gewissheit, das der Join auch funktioniert. Probier's mal aus !

gruß Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag (Insgesamt 2):
ereussAlpmann

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Inner Join

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
Okay, vielen Dank. Ich habe es jetzt endlich gelöst : )

Re: Inner Join

Beitrag von IHe (Specialist / 142 / 35 / 45 ) »
L0w-RiDer hat geschrieben:
29.03.2021 15:39
Okay, vielen Dank. Ich habe es jetzt endlich gelöst : )
Die User, die irgendwann mal ein ähnliches Problem und dazu deine Fragestellung gefunden haben, werden dich für dieses Ende des Threads hassen 😁

Folgende Benutzer bedankten sich beim Autor IHe für den Beitrag:
DeathAndPain

Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Re: Inner Join

Beitrag von L0w-RiDer (Expert / 535 / 83 / 2 ) »
hmmm der User hat bei Lagerort aus Versehen den Lagertyp eingegeben gehabt. Mir ist das leider auch nicht gleich aufgefallen : D

Seite 1 von 1

Vergleichbare Themen

1
Antw.
760
Views
Join mit Left Outer Join
von Rude1986 » 17.01.2021 19:53 • Verfasst in ABAP® für Anfänger
8
Antw.
969
Views
Inner Join
von L0w-RiDer » 06.11.2019 09:47 • Verfasst in ABAP® für Anfänger
17
Antw.
7140
Views
JOIN
von robin1at » 22.02.2006 17:28 • Verfasst in ABAP® für Anfänger
3
Antw.
3260
Views
Was ist ein Join?
von Schmarsi » 28.09.2010 11:37 • Verfasst in ABAP® für Anfänger
3
Antw.
2930
Views
inner join
von dawns » 14.05.2007 15:49 • 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

PDF-Anzeige unter EDGE
vor 4 Tagen von jocoder 2 / 66
Etikettendruck mit SmartForms
vor einer Woche von a-dead-trousers 2 / 67

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

PDF-Anzeige unter EDGE
vor 4 Tagen von jocoder 2 / 66
Etikettendruck mit SmartForms
vor einer Woche von a-dead-trousers 2 / 67

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Wochen von Lucyalison 1 / 129
Group Items auf einer Filterbar
vor 4 Wochen von Bright4.5 1 / 164