PDA

View Full Version : Problem im QM mit Decimal



Marc_w
30-10-05, 09:34
Hallo
Habe unter STRSQL folgende Anweisung ohne Probleme gestestet
update ... set
Preis= DECIMAL((DECIMAL((Preis*105+0,5) , 9, 0)/100) , 7, 2)
... where ...

Im Query Manager gibt es mit der DECIMAL(..) , 9, 0)...
Darstellung Probleme. Das Komma vor der 9 wird nicht akzeptiert.

Hat mir einer nen Tipp?

Marc

B.Hauser
30-10-05, 11:45
Hallo Marc,

1. Hast Du im QM nach jedem Komma auch ein Leerzeichen gesetzt?
Wenn nicht füge überall ein Leerzeichen ein.

2. Sollte es mit der Scalaren Funktion DECIMAL immer noch nicht klappen, versuche es mit CAST:


update ... set
Preis= Cast((Cast((Preis*105+0,5) as Dec(9, 0))/100) as Dec(7, 2))
... where ...


Birgitta

Marc_w
30-10-05, 21:37
Hallo Birgitta.

Zu 1.: ja, habe ich.

Zu 2.: vielen Dank, diese Lösung funktioniert.

Marc

Fuerchau
31-10-05, 07:24
Wichtig ist nicht das Leerzeichen nach sondern VOR dem Komma !!!
SQL interpretiert eine Zahl als Dezimalzahl, wenn auf die Ziffer direkt ein Komma folgt.
Am besten fährt man, wenn man sich angewöhnt vor und hinter einer Zahl ein Leerzeichen zu setzen.
Auch andere scalare Funktionen (substr, posstr, usw.) haben das selbe Problem.