Hallo Leute,
Ich wäre als der Neuer hier und hab so ziemlich sehr wenig Ahnung von
SQL und bitte um Eure Hilfe.
Aufgabe:
Tabelle "Abrechnung"- Zahlen mit 2 Dezimalstellen in einer Spalte (Betrag) um X% vermindern und das Ergebis auf die erste Kommastelle runden.
Bsp: 61,10 um 20% reduziert ergibt 48,88 -> das Ergebnis soll aber auf 48,90 gerundet werden.
Was ich habe:
Code:
Update Abrechnung
set
Betrag= Cast(CAST(Betrag*(100-20) AS Integer) as Float)*0.01
where
Abrechnungsdatum between 'dd.mm.yyyy' and 'dd.mm.yyyy' and Betrag > 0
Dieser Befehl bringt mir aber eben den "falschen" Wert mit 48,88 als Ergebnis.
Was ich weiter habe:
Code:
Update Abrechnung
set
Betrag= Cast(CAST(Betrag*(100-20)*0.1 AS Integer) as Float)*0.1
where
Abrechnungsdatum between 'dd.mm.yyyy' and 'dd.mm.yyyy' and Betrag > 0
Hier beköme ich zwar immer die Zahl als '##,#0' dargestellt, aber immer nur nach unten gerundet bzw. berechnet - was mathematisch natürlich falsch ist.
Es gibt doch einen Befehl ROUND, dieser wird aber angeblich nicht in Delphi 5 funktionieren.
Es handelt sich dabei um eine uraltes Programm das aber immer noch verwendet wird.
Könnte man vielleicht das Ergebnis der 5-Reduktion mit 100 multiplizieren, die letzte Ziffer dieser Zahl auf 0 ändern und dann wieder durch 100 dividieren um die Kommastellen zu erhalten?
Habt ihr eine Idee wie ich das lösen könnte?
Danke und LG.
Robert