Hallo zusammen,
ich sehe das Problem nicht darin, dass die MSEG mit sich selbst gejoined wird. Es gibt durchaus Fälle (z.B. eine Hierarchie), in denen diese Vorgehensweise sinnvoll ist.
Ich sehe hingegen das Problem darin, dass der Join über Nicht-Schlüsselfelder durchgeführt wird. Dies hat folgende Konsequenzen: Während im großen Join die Datensätze, in denen es keine Kunden- oder Materialnummer gibt, im Inner Join verschwinden, wird in der Variante mit den Selects für alle Einträge der MSEG ein LOOP durchlaufen. Das ist meiner Meinung nach falsch.
Ich rate Dir daher dazu, die interne Tabelle mseg_tab nicht mit der MSEG, sondern mit dem Join MSEG mit MSEG zu füllen. Dafür kannst Du den Join MSEG mit der MKPF als einfache Select-Anweisung ausführen.
Aus Effizienzgründen kannst Du das Feld MJAHR aus der Tabele MSEG beim Join mit der Tabelle MKPF vergleichen. Damit hast Du bei der MKPF den vollen Schlüssel, was immer schneller ist als ein halber.
Viel Spaß. Wenn es Schwierigkeiten gibt, dann schreib mir.
Schöne Grüße
Taner
Schöne Grüße
Taner
Beratung in SAP IS-U und IS-Waste
ABAP-Entwicklung