effizienterer Zugriff auf die MSEG

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

effizienterer Zugriff auf die MSEG

Beitrag von dimes (Specialist / 146 / 0 / 0 ) »
Hallo Leute,

Hab folgenden Code in einem Report gefunden und frage mich ob das schon der schnellste code ist oder nicht. ich denke mal das es noch besser geht:

Code: Alles auswählen.


    SELECT kb~menge kulab bk~bwart INTO TABLE beleg
      FROM ( ( mseg AS kb INNER JOIN mseg AS bk
                       ON bk~kunnr = kb~kunnr AND bk~matnr = kb~matnr )
                          INNER JOIN mkpf AS mk
                       ON mk~mblnr = bk~mblnr )
                          INNER JOIN msku AS ku
                       ON ku~kunnr = kb~kunnr AND ku~matnr = kb~matnr
     WHERE kb~mblnr = wa-mblnr
       AND ( bk~bwart = '201' OR bk~bwart = '202' )
       AND cpudt = sdatum.

Könnt ihr mir vielleicht par Tips geben...

Gruß dimes und ein schönes WE

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


Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
ÄHM???
MSEG mit nem JOIN auf MSEG? :?:

In der Regel dürfte das eher INperformant sein.

Beitrag von dimes (Specialist / 146 / 0 / 0 ) »
Hi DeathGuardian,
das dachte ich mir eigendlich auch. Nun hab ich versucht ob es nicht besser ist die vielen joins weg zu lassen:

Code: Alles auswählen.


SELECT mblnr matnr kunnr menge
      INTO TABLE mseg_tab
      FROM mseg
     WHERE mblnr = wa-mblnr.

    LOOP AT mseg_tab.

      beleg-menge = mseg_tab-menge.
      
      SELECT seg~bwart seg~matnr seg~kunnr
        INTO (beleg-bwart, tmp_matnr, tmp_kunnr)
        FROM mseg AS seg INNER JOIN mkpf AS kpf
                         ON kpf~mblnr = seg~mblnr
       WHERE seg~bwart IN ('201', '202')
         AND seg~matnr = mseg_tab-matnr
         AND seg~kunnr = mseg_tab-kunnr
         AND kpf~cpudt = sdatum.

        SELECT kulab
          INTO beleg-kulab
          FROM msku
         WHERE kunnr = tmp_kunnr
           AND matnr = tmp_matnr.
          APPEND beleg.
          CLEAR: beleg-kulab.

        ENDSELECT.
        CLEAR: tmp_kunnr, tmp_matnr, beleg-bwart.
      ENDSELECT.
    ENDLOOP.
Es läuft sehr viel schneller durch aber ich weiß nicht genau ob es auch die gleiche lögik ist...
Vielleicht kann mir ja einer sagen ob ich es richtig gemacht habe.

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Naja, ob man nun Daten aus einer Datenbank mit mehreren einzelnen Selects, oder mit einem grossen Join holt ist im Grunde (solange das Ergebnis stimmt) egal.

Die Frage ist eher immer, was ist performanter.

In der Regel versuch ich aber mit so wenigen Selects wie möglich auszukommen, sprich am besten ein grosser Join.


Aber das was ich eher mit meinem vorherigen Post sagen wollte, war das in dem oben ehrwännten Join 2mal die MSEG vorkommt, sprich was passiert, wenn du nur den Teil wo die Mseg zur Mseg gejoint wird rausschmeisst.

Beitrag von dimes (Specialist / 146 / 0 / 0 ) »
Der Joint hat meiner Meinung nach schon einen Sinn, und zwar umschrieben diesen:

Code: Alles auswählen.

...

SELECT mblnr matnr kunnr menge 
      INTO TABLE mseg_tab 
      FROM mseg 
     WHERE mblnr = wa-mblnr. 

*  Mit der Matnr und der Kunnr aus diesem Mseg eintrag werden 
* weitere Einträge gesucht...
    LOOP AT mseg_tab. 
     
      SELECT bwart matnr kunnr 
        INTO (beleg-bwart, tmp_matnr, tmp_kunnr) 
        FROM mseg 
       WHERE bwart IN ('201', '202') 
         AND matnr = mseg_tab-matnr 
         AND kunnr = mseg_tab-kunnr. 

...

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1169
Views
Entlastungsproblematik MSEG
von Zhaldur » 09.05.2006 10:01 • Verfasst in Basis
2
Antw.
3144
Views
Beziehung MSEG (oder MKPF) zu LIPS bzw LIKP?
von Nordlicht » 10.01.2019 14:34 • Verfasst in ABAP® für Anfänger
4
Antw.
2824
Views
Zugriff auf int. Tabelle
von BesenWesen » 07.08.2006 12:35 • Verfasst in ABAP Objects®
1
Antw.
1902
Views
Excel Zugriff auf R3
von Gast » 19.10.2005 10:47 • Verfasst in SAP - Allgemeines
0
Antw.
1935
Views
Zugriff auf Struktur in OO
von mazu » 04.10.2007 12:07 • Verfasst in ABAP Objects®

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 4 Stunden von tar 8 / 183
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1489

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 4 Stunden von tar 8 / 183
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1489

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