Wie Runde richtig SQL Geld geben?

Brauche ich Hilfe von SQL-Experten. Ich versuche, Daten mit 4 Nachkommastellen. Ich bin dabei einige Berechnung auf Typ "Geld". Aber die Berechnung nicht Runde zu mine Vorliebe.

Unten ist ein Beispiel mit regelmäßigen zahlen und die gleichen Werte Geld geben.

DECLARE @MaxAmt money
DECLARE @MinAmt money

SET @MaxAmt = 207998693.55
SET @MinAmt = 20799442.35

SELECT
((207998693.55 - 20799442.35) / 2 + 20799442.35) / 24 AS Col1,
((@MaxAmt - @MinAmt) / 2 + @MinAmt) / 24 AS Col2

Col1 angezeigt Wert entspricht 4766627.831250000
Während Col2 den Wert 4766627.8312.

Mein Ziel ist, dass die Anzeige nur 4 Dezimalstellen, aber es sollte rund sein, richtig. Ich würde erwarten, dass 4766627.8313 Wert.

Die würde angezeigt, nach Gießen.

SELECT CAST(((207998693.55 - 20799442.35) / 2 + 20799442.35) / 24 AS DECIMAL(12,4))

Aber wenn ich den Umgang mit Geld geben mein Wert nach dezimal ist .8312 statt .8313

  • Das ist, weil Ihr MONEY Berechnung ist wohl mit Banker ' s Rounding - ich nehme an, es ist eine system-Einstellung für das; was RDBMS verwenden Sie?
  • Ich bin mit MS SQL. Was kann ich tun, um die Rundung, die ich brauche?
  • ... Ein kurzer Blick durch die Dokumentation ist nicht enthüllt nichts; ich vermute, dass Sie eventuell Stimmen die Spalten DECIMAL ersten: es ist wahrscheinlich abgerundet, während die eigentliche Bewertung, so dass Sie gehen zu müssen, zu sagen, welche (größeren) Typen, die Sie wollen vor der Zeit.
  • Du hast Recht, sobald ich, der werfe den ersten Geld, variable Runden, als ich erwarte. Vielen Dank für die Hilfe. Legen Sie es in den Antwort-Abschnitt, also ich kann, außer es als eine gültige Antwort.
InformationsquelleAutor Vadim | 2013-03-18
Schreibe einen Kommentar