SAP Jobsuche bei DV-Treff
MichaelaMueller
vor 8 Jahre
Hi!

Ich habe mal eine Frage, geht es, dass ich in einem lokalen Feld, welches zwei Felder dividiert, das Ergebnis immer abrunden lasse?

also 24 / 10 = 2,4 Im Query soll 2 herauskommen

genauso 18 / 10 = 1,8 Im Query soll 1 herauskommen

Wenn ich die Festpunktarithmetik im Infoset deaktivere, kommt zumindest mal ein Ergebnis ohne Rundung.

Damit könnte man sich manuell in Excel dann helfen.

Aber im Query wäre es eine saubere Lösung :-)

Achso bitte kein coding, das dürfen wir nicht integrieren .... :-/

wreichelt
vor 8 Jahre
Hallo,

das wird ohne Coding nicht gehen.

Aber in einem lokalen Feld sollte es mit der Anweisung

I=Floor(p)

Compute und da F1-Taste.

=> FLOOR rundet ab auf die nächste ganze Zahl

Gruß

Wolfgang

MichaelaMueller
vor 8 Jahre
Mein lokales Feld sieht folgend aus.

Rechenfeld:

Bedingung: KAP <> 0

Formel: KAP / VE

(KAP = Kapazität, VE = Kolli)

Ich bin jetzt nicht sicher, wo die Anweisung eingefügt werden kann?!

Sorry...

wreichelt
vor 8 Jahre
Hallo,

in der Formel über Compute kap / ve .......

MichaelaMueller
vor 8 Jahre
Leider kann ich über die Fa kein Bild in einem Hoster hochladen, um zu zeigen, wie mein lokales Feld aussieht.

Aber ich glaube, es ist anders, als das was du schreibst.

Ich kann nichts über der Formel einfügen und ein "Compute" sehe ich nicht bzw. das kenne ich leider nicht ....

BerndS
vor 8 Jahre
Hallöle,

wahrscheinlich hast du eine lokales Zusatzfeld im Query definiert. Die Möglichkeiten sind da beschränkt.

Das solltest ne Stufe früher machen, also bereits im Infoset (TR SQ02), heißt dann nur 'Zusatzfeld definieren' (ändern/Zusätze/Zusatzfeld/ und dann eben 'Coding zum Zusatzfeld'

Gruß Bernd

unkelbach
vor 8 Jahre
Ohne es direkt getestet zu haben, aber ggf. kannst du mit den beiden Formeln DIV und MOD und Hilfsfeldern arbeiten, sofern du in der SQ01 mit lokalen Feldern arbeiten musst.

- DIV (ganzzahlige Division, d.h. das Ergebnis ist ganzzahlig)

- MOD (Rest)

Feld 1:

DIV ( FELD_A / FELD_B )

Feld 2:

MOD ( FELD_A / FELD_B )

Feld 3:

Bedingung

wenn Feld_2 > 0,5 dann Feld_1 -1 ansonsten Feld_1

Sofern ein Coding als Zusatzfeld im Infoset angelegt werden soll sind hier allerdings tatsächlich weitergehende Berechtigungen erforderlich:

"Sofern auch ABAP Coding im Infoset hinterlegt werden soll, ist der Objekttyp PROG im Berechtigungsobjekt S_DEVELOP und 'AQ*' für OBJNAME erforderlich. Andernfalls ist ein Coding hier nicht möglich. Dieses gilt dann auch für einen Import von Query per Upload in ein anderes System." Siehe "Grundlagen Kurzeinführung und Handbuch SAP Query "

Vielleicht hilft dir aber dieser Ansatz für lokale Felder in der Query selbst weiter.

Viele Grüße

andreas

MichaelaMueller
vor 8 Jahre
Da wir im Infoset auch keine Codings anlegen dürfen, bleibt nur die Definition über die Lokalen Felder im Query.

Aber ich versuche mich an dem DIV/MOD

Vielen Dank!

Gruß

Michaela

unkelbach
vor 8 Jahre
Sorry Syntaxfehler in meinen Beispielen versuche es mal mit:

Feld 1:

FELD_A DIV FELD_B

Feld 2:

FELD_A MOD FELD_B

Es kann schon sein, dass dir hier Feld 1 das gewünschte Ergebnis liefert andernfalls müsstest du anhand des Restwertes bestimmen, ob vom aufgerundeten Feld 1 der Wert 1 abgezogen werden müsste.

Feld 3:

Bedingung

wenn Feld_2 > 0,5 dann Feld_1 -1 ansonsten Feld_1

Leider habe ich gerade keine Query, die ich als Beispiel verwenden könnte...aber von der Theorie her dürfte das so funktionieren (hoffe ich). Zur Sicherheit würde ich mir in der Grundliste Feld 1 bis Feld 3 ausgeben lassen.

Viele Grüße

Andreas

MichaelaMueller
vor 8 Jahre
Pefekt

Feld 1:

FELD_A DIV FELD_B

brachte die Lösung! Vielen Dank!