Runde auf die nächsten 5 in SQL Server

8

Ich habe eine Money-Spalte in meiner SQL Server 2008-Tabelle. In meiner unteren Frage, wie kann ich es auf die nächsten 5 $ runden

%Vor%

Danke

    
acadia 09.11.2009, 16:21
quelle

6 Antworten

17
%Vor%

oder um Nicholaides Vorschlag in sql

zu setzen %Vor%

Das Beispiel geht davon aus, dass FineAmount vom Typ Geld ist. Der zweite Ansatz ist wahrscheinlich besser, da der erste Ansatz mit dem Limit von maximum_value_of_money_type / 2

arbeitet

Mehr zu RUNDE

    
kristof 09.11.2009, 16:32
quelle
11

Eine allgemeine mathematische Lösung:

Teile durch 5, runde auf die nächste ganze Zahl und multipliziere mit 5.

    
nicholaides 09.11.2009 16:24
quelle
2

Wenn Sie eine Gruppierung von 5 abschneiden (abrunden) möchten, verwenden Sie die Modulo-Funktion; In Microsoft SQL Server ist dies %

zB: field1 - ( field1 % 5)

Wenn Sie field1 == 3 hätten, wäre das calc:

3 - (3% 5) = 0

wenn es 13 wäre:

13 - (13% 5) = 10

Fügen Sie einfach 5 hinzu, wenn Sie aufrunden möchten

Siehe auch "MOD" ist kein anerkannter im Funktionsnamen

    
n8isjack 08.01.2016 17:03
quelle
0
%Vor%

- Sie erhalten 7818.30

    
Khaled Eltabei 20.01.2015 15:50
quelle
0

Meine erste Lösung war

%Vor%

Dies funktioniert, wird aber von MSSQL als 'ungenau' angesehen, da intern Gleitkommazahlen verwendet werden. Dadurch wird verhindert, dass es in indizierten Sichten verwendet wird. Sie können stattdessen den Job nur mit Ganzzahlarithmetik ausführen:

%Vor%     
Ed Avis 07.09.2016 11:44
quelle
-8

Verwenden Sie die ROUND-Funktion

%Vor%     
Ender 09.11.2009 16:28
quelle

Tags und Links