在SQL中舍入小数商数值的正确语法是什么

时间:2016-05-26 13:55:40

标签: sql-server

如果我将SQL中的某些值相加并除以另一个值的总和,我会得到一个十进制值。我希望将这些值舍入到最接近的.5或.10,但是当我运行查询时,我的商是0.我将我的值乘以2,舍入,然后除以2.

ROUND((SUM(SALESTAX) / SUM(NULLIF(TOTALCOST, 0))*2),0) / 2 

RESULT
0.000000

如果我简单地舍入2,我会得到舍入值,但不是正确值。

我不知道为什么会出错,除非,我的查询编写方式并没有真正倍增。

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的要求,我相信您的ROUND函数中只有一个错误的值。在我看来,你正在四舍五入到小数点后0位。我想你想要这个...

ROUND((SUM(SALESTAX) / SUM(NULLIF(TOTALCOST, 0))*2), 2) / 2

我认为你可以将乘法乘以2并除以2。