如果我将SQL中的某些值相加并除以另一个值的总和,我会得到一个十进制值。我希望将这些值舍入到最接近的.5或.10,但是当我运行查询时,我的商是0.我将我的值乘以2,舍入,然后除以2.
ROUND((SUM(SALESTAX) / SUM(NULLIF(TOTALCOST, 0))*2),0) / 2
RESULT
0.000000
如果我简单地舍入2,我会得到舍入值,但不是正确值。
我不知道为什么会出错,除非,我的查询编写方式并没有真正倍增。
答案 0 :(得分:1)
如果我正确理解您的要求,我相信您的ROUND函数中只有一个错误的值。在我看来,你正在四舍五入到小数点后0位。我想你想要这个...
ROUND((SUM(SALESTAX) / SUM(NULLIF(TOTALCOST, 0))*2), 2) / 2
我认为你可以将乘法乘以2并除以2。