SAP Jobsuche bei DV-Treff
DekiTrav
  • DekiTrav
  • SAP Forum - User Thema Starter
vor 4 Jahre
Liebe Community,

ich habe zwei Tabellen (MCHB und MBEW, left outer join) und möchte den Lagerstand pro Lager mit dem dazugehörigem Wert ermitteln.

Problem:

In der Tabelle MCHB sind alle Materialien gepflegt und aus dieser Tabelle bekomme ich den Lagerstand, in der Tabelle MBEW sind nicht alle Materialien gepflegt (z.B. Fremdmaterial) und deswegen zeigt mir die Query beim ausführen keinen Lagerstand an obwohl ein Lagerstand vorhanden ist.

Wie bekomme ich es hin, dass die Query mir auch den Lagerstand von den Materialien anzeigt die nicht in der MBEW Tabelle gepflegt sind?

Schöne Grüße

DekiTRav

Johannes Gerbershagen
vor 4 Jahre
Mit einem LEFT OUTER JOIN. Auf der linken Seite steht die Tabelle MCHB und auf der rechten Seite die Tabelle MBEW. Der LEFT OUTER JOIN erhält dann alle Datensätze aus der Tabelle MBEW. Wichtig ist dabei zu beachten, dass die Query keine Felder der Tabelle MBEW einschränkt. Sonst erfüllt der LEFT OUTER JOIN seinen Zweck nicht.


DekiTrav
  • DekiTrav
  • SAP Forum - User Thema Starter
vor 4 Jahre
Hallo Johannes,

danke für die Rückmeldung!

Wie kann ich noch im Infoset ein Zusatzfeld (GESAMTBESTAND) mit drei Feldern über die Charge 9, 7 und 5 mit einem Code summieren?

Ich bin kein ABAP Entwickler und bräuchte schon ein genaues Coding!

Es geht um die Tabelle MCHB und die Felder CLABS, CEINM und CSPEM müssen über die Chargen 9, 7 und 5 in das Feld GESAMTBESTAND summiert werden?

Danke im Voraus für die Antwort!

Schöne Grüße

DekiTrav

Johannes Gerbershagen
vor 4 Jahre
Das Infoset kann um ein weiteres Feld erweitert werden. Dieses wird nur für die Chargen 9,7 und 5 mit der Summe aus CLABS, CEINM und CSPEM gefüllt. Dieses Zusatzfeld kannst du dann in der Query summieren.

Coding für das Zusatzfeld könnte wie folgt aussehen:

CLEAR gesamtbestand.

IF mcha-charg = '9' OR mcha-charg = '7' OR mcha-charg = '5'.

gesamtbestand = mchb-clabs + mchb-ceinm + mchb-cspem.

ENDIF.

Apropos kein Entwickler:

Grundkenntnisse in ABAP und OpenSQL schaden auch bei Entwicklung von Queries nicht. Ich würde sie mir an deiner Stelle aneignen. Wer OpenSQL verstanden hat, dem fällt auch die Queryentwicklung einfacher.


DekiTrav
  • DekiTrav
  • SAP Forum - User Thema Starter
vor 4 Jahre
Danke für die Antwort! Aber leider bekomme ich immer noch die falschen Werte, die Materialien die nicht in MBEW sind werden auch nicht gezählt, was falsch ist.

Gibt es eine andere Möglichkeit nur die Werte aus MCHB zu bekommen?

Danke vorab für die Antworten!

Johannes Gerbershagen
vor 4 Jahre
Schränkst du Felder aus der Tabelle MBEW im Selektionsbild ein?

Dann kommen die Datensätze, die in der Tabelle MCHB aber nicht in der Tabelle MBEW vorhanden sind, nicht, auch wenn ein MCHB LEFT OUTER JOIN MBEW gewählt wird.

Eine weitere Möglichkeit wäre die Tabelle MBEW aus dem JOIN herauszunehmen und als Zusatztabelle hinzuzufügen.


DekiTrav
  • DekiTrav
  • SAP Forum - User Thema Starter
vor 4 Jahre
Danke, dass mit der Zusatztabelle hat funktioniert!

Jetzt benötige ich ein Feld mit Gesamtwert, dass sich wie folgend berechnet:

Gesamtwert = (mchb-clabs + mchb-ceinm + mchb-cspem) * mbew_verpr

mit der Bedingung, dass nur mit Bewertungsart = 9 (mbew-bwtar) gerechnet wird.

DekiTrav
  • DekiTrav
  • SAP Forum - User Thema Starter
vor 4 Jahre
Im Infoset habe ich folgenden Code geschrieben:

clear gesamtwert.

if mbew-bwtar = '9'.

gesamtwert = ( mchb-clabs + mchb-ceinm + mchb-cspem ) * mbew-verpr.

endif.

Das Problem ist, dass manche Materialien eine Preiseinheit (mbew-peinh) von z.B. 100 St. haben und durch das Coding werden alle Stück mit dem Preis gerechnet!

Beispiel:

200 Stück im Lager

10€/100St. Preiseinheit

Sollte einen Wert von 20 € ergeben aber die Query gibt 2000 € als Ergebnis aus!

Wie bekomme ich auch hier die richtigen Werte?

wreichelt
vor 4 Jahre
Hallo,

die Preiseinheit abfragen und dann den Gesamtwert / 100.

Gruß Wolfgang

DekiTrav
  • DekiTrav
  • SAP Forum - User Thema Starter
vor 4 Jahre
Und wenn die Preiseinheit z.B. 100€/10St, 50€/100St, 1€/100St usw., dann muss ich alles einzeln ausrechnen und das kann auch nicht die Lösung sein.

Rechnen kann ich aber nicht ABAP programmieren.

wreichelt
vor 4 Jahre
Hallo,

ergänze doch die Rechenformel mit

mbew-bwtar = '9'.

gesamtwert = ( mchb-clabs + mchb-ceinm + mchb-cspem ) * mbew-verpr / peinh.

endif.

Gruß Wolfgang