Code Umstellung auf Inner Join

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Code Umstellung auf Inner Join

Beitrag von Timo2 ( / / 0 / 3 ) »
Hallo!

Ich würd gern folgendes, der Performance halber, auf Inner Join umstellen. Leider scheitere ich kläglich .. kann das vielleicht jemand für mich übernehmen? Ich blick's einfach nicht ..

Danke!

Gruß, Timo

Code: Alles auswählen.

  SELECT matnr FROM mara
        INTO TABLE itab
        WHERE matnr IN imatnr
        AND matnr NE ''.

  LOOP AT itab.

    SELECT SINGLE knumh FROM a006
        INTO itab-knumh
        WHERE matnr = itab-matnr
        and pltyp in ipltyp
        and waerk = 'EUR'
        and datbi >= sy-datum
        and datab =< sy-datum.

    select single kbetr from konp
            into itab-kbetr
            where knumh = itab-knumh
            and konwa = 'EUR'
            and loevm_ko = ''.

    select single kznep from konp
            into itab-kznep
             where knumh = itab-knumh
             and loevm_ko = ''.

    WRITE: / itab-matnr, itab-kbetr, itab-kznep.

  ENDLOOP.

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


Beitrag von Gast ( / / 0 / 3 ) »
Beispiel:

Code: Alles auswählen.

SELECT c~carrname p~connid f~fldate 
       INTO CORRESPONDING FIELDS OF TABLE itab 
       FROM ( ( scarr AS c 
         INNER JOIN spfli AS p ON p~carrid   = c~carrid 
                              AND p~cityfrom = p_cityfr 
                              AND p~cityto   = p_cityto ) 
         INNER JOIN sflight AS f ON f~carrid = p~carrid 
                                AND f~connid = p~connid ). 
müsste dann in etwa so aussehen:

Code: Alles auswählen.


  LOOP AT itab. 
  select a~knumh k~kbetr k~kznep
  into corresponding fields of itab
  from (a006 as a inner join konp as k on
             a~knumh = k~knumh)
  where ....

  ENDLOOP. 
Die join-Bedingung musst Du noch überprüfen und evtl. in der where-Klausel noch weitere Einschränkungen vorgeben. Das ist jedenfalls die prinzipielle Vorgehensweise.

Beitrag von Volker Neurath (ForumUser / 17 / 0 / 0 ) »
Hallo Timo2

folgendes sollte tun:

Code: Alles auswählen.

SELECT mar~matnr a6~kunumh kp~kbetr kp~kznep
FROM ( 
           ( mara as ma
                INNER JOIN a006 AS a6 ON a6~matnr = ma~matnr
                                                 AND ma~pltyp IN ipltyp
                                                AND ma~waerk = 'EUR'
                                                AND datbi GE sy-datum
                                                AND datab LE sy-datum )
                INNER JOIN konp AS kp ON  kp~knumh = a6~knumh
                                                  AND kp~konwa = 'EUR'
                                                  AND kp~loevm_ko = '')
INTO CORRESPONDING FIELDS OF TABLE itab
WHERE matnr IN imatnr 
        AND matnr NE ''. 

Ist ungetestet, das solltest du selbst übernehmen ;)

Volker
Imübrigen bin ich der Meinung, das TCPA verhindert werden muss --- www.againsttcpa.com

Beitrag von Timo2 ( / / 0 / 3 ) »
hallo,

ich möchte mich nur schnell für eure Antworten bedanken. Inner Join funktioniert zwar bei der A006 nicht (Pool Tabelle), aber durch eure Beispiele ist mir die ganze Sache klarer geworden, danke

Gruß, Timo

Seite 1 von 1

Vergleichbare Themen

1
Antw.
755
Views
Join mit Left Outer Join
von Rude1986 » 17.01.2021 19:53 • Verfasst in ABAP® für Anfänger
1
Antw.
1094
Views
Umstellung der Debitorennummern
von UK » 19.04.2007 08:39 • Verfasst in Financials
2
Antw.
4531
Views
Unicode-Umstellung
von ralf.wenzel » 06.03.2007 10:06 • Verfasst in ABAP® Core
5
Antw.
6241
Views
Unicode-Umstellung: Codepages
von neXXus » 23.09.2013 10:50 • Verfasst in ABAP® Core
0
Antw.
889
Views
Umstellung von Bankleitzahl an Personenkonten
von LazyJones » 13.02.2012 08:26 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

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.