Ich bin auf SQLServer 2008 mit der folgenden Tabelle arbeiten:Dezimalrundung in Vereinigung von Summen?
id user program seconds
------------------------------------
9999 'user01' 'pr01' 5
Spalte 'Sekunden als Dezimalzahl definiert (14,0) und die einzige Zeile in der Tabelle ist derjenige gezeigt.
Also versuche ich einige Fragen:
Q1:
select seconds*0.95 from myTable
union all
select seconds from myTable
Es gibt das Ergebnis, das ich erwarten:
4.75
5.00
Q2:
select sum(seconds)*0.95 from myTable
union all
select sum(seconds) from myTable
Ich hatte erwartet, die Das gleiche Ergebnis wie in Q1, aber das Ergebnis lt ich erhalte, ist:
5
5
Q3:
select sum(seconds)*0.95 from myTable
union all
select sum(seconds)*1.00 from myTable
In diesem Fall habe ich die Ergebnisse erhalten, erwarte ich:
4.75
5.00
Also, ich möchte wissen, warum Q2 nicht ist immer die erwarteten Ergebnisse.
Ich habe das gleiche Beispiel versucht, wobei 'Sekunden' eine Dezimalzahl (2,0) ist und gut funktioniert, also denke ich, dass es etwas mit der Dezimalzahl zu tun hat, aber in diesem Fall kann ich nicht herausfinden, warum Q1 und Q3 funktionieren während Q2 nicht.
Ich versuche mit Dezimal (2,0) und es scheint nicht zu funktionieren –