SAP Jobsuche bei DV-Treff
dirk kuennemann
vor 23 Tage
Hallo zusammen,

ich bekomme es leider irgendwie nicht hin mit einem Join über beide Tabellen einfach nur die Anzahl der MKPF Sätze zu erhalten.

Mein Ziel ist es in der MSEG mit Selektion auf bspw. WERK und Lagerort und ggf. noch Materialnummernrange etc. Materialbelege zu erhalten und dann aber zu diesen, welche dann doppelt und dreifach vorkommen auf Pos. eben nur die MKPF Sätze auszugeben.

Danke.

BG

daytona80
vor 22 Tage
Hallo,

was genau ist denn das Problem?


Vielen Dank und viele Grüße
dirk kuennemann
vor 22 Tage
Hallo.na ich bekomme immer nur die mseg sätze als Ergebnis.möchte aber nur die zugehörigen mkpf sätze. Also möchte via mseg Selektionen ,wie werk.lagerort .Material selektieren.aber möchte zu den ermittelten mseg sätzen nur die mkpf Sätze als Ergebnis. Danke

Vg

wreichelt
vor 22 Tage
Hallo,

das sollte doch eigentlich kein Problem sein.

Tabelle MSEG mit der MKPF verbinden ( Keyfelder sind MBLNR und MJAHR) .

Da die MKPF der Kopf zur MSEG ist muss das so funktionieren

Gruß

Wolfgang

Nordwolf
vor 22 Tage
Wenn du nur die Anzahl der MKPF haben möchtest, dann könntest du ein Zusatzfeld programmieren, bei dem du ein SELECT COUNT Statement rein nimmst, was die MKPF-MBLNR entsprechend deiner Selektion zählt. Steht dann halt in jeder Zeile die gleiche Zahl drin.

Wenn du die Belegnummern auch brauchst, aber eben nur 1x, dann wird das so nicht funktionieren über eine Query. Sobald du mehrere Positionen eines Belegs selektierst, wird die Belegnummer auch mehrmals ausgegeben. Das müsstest du dann als Report programmieren, das von der gefundenen Ergebnismenge eben nur immer eine Zeile ausgegeben wird.

Oder Quick&Dirty-Variante: Deine Ergebnisliste ins Excel werfen und für die Belegnummer die Duplikate löschen.

Gruß, Nordwolf

dirk kuennemann
vor 22 Tage
Hallo,

Danke,

ja diese Quick an dirty Lösung hatte ich verwendet.

Kannst Du das mit dem select kurz aufzeigen, wie ich dies in der Query einbauen kann.

Danke.

BG

AlexMK
vor 22 Tage
Hallo Dirk

Wichtig für dieses Zusatzfeld ist, dass Du in deinem Query die Belegposition (Zeile) aus der MSEG mit in der SQ01 auswählst.

in der SQ02 definierst Du ein Zusatzfeld vom Typ "P".

Sollte so viele Stellen haben, wie Du als Ergebnis erwartest.

Das Feld nennen wir jetzt einfach mal "Counter"

Darin wirfst Du folgenden Code:

************************

DATA: LV_ZEILE TYPE MSEG-ZEILE.

Clear: Counter, LV_ZEILE .

select single ZEILE from MSEG into LV_ZEILE

where MBLNR EQ MKPF-MBLNR and MJAHR EQ MKPF-MJAHR.

if LV_ZEILE EQ MSEG-ZEILE .

Counter = 1 .

endif.

*******************

Das Feld muss dann nur noch in die Feldgruppe und dann in der SQ01 mit ausgewählt werden.

Was Du damit erreichst, ist das je BKPF Eintrag 1x eine 1 stehen haben wirst.

Gibt es zum Belegkopf mehrere Einträge, wird bei allen anderen eine "0" stehen.

Da das ein Feld vom Typ "P" ist, kannst Du dann damit über das Layout vom Query eine Summenbildung machen.

Damit hast Du dann unten drunter, immer die Anzahl der Belegköpfe.

Je nach Menge der Einträge, die Du selektierst, kann das etwas länger dauern, aber für so Quick and Dirty Auswertungen durchaus brauchbar.