如何在SQL中舍入数字

时间:2013-02-21 13:53:55

标签: sql

我有这样的查询:

Select Customer,JobType,sum(SThours),
sum(OThours),SortMonth,
str((sum(OThours)/sum(SThours)),5,2)AS Ratios 
from #data
group by Customer,JobType,SortMonth


Sum (SThours): 688
sum(OThours): 618

该比率应为618/688 = 0.90但我的结果为1.00

我是SQL的新手,我需要帮助。感谢。

3 个答案:

答案 0 :(得分:3)

尝试将除法的一侧或另一侧投射到浮点数 - 强制浮点而不是整数除法。

SELECT
  Customer,
  JobType,
  sum(SThours),
  sum(OThours),
  SortMonth,
  str((CAST(sum(OThours) AS FLOAT)/sum(SThours)),5,2) AS Ratios
FROM
  #data
GROUP BY
  Customer,
  JobType,
  SortMonth

答案 1 :(得分:1)

您的问题是您正在执行整数除法,它总是会返回一个整数值。 在分割之前,您应该将总和转换为浮点数值(小数应该起作用)。

答案 2 :(得分:1)

尝试将数字转换为十进制

SELECT
  Customer,
  JobType,
  sum(SThours),
  sum(OThours),
  SortMonth,
  str((CAST(sum(OThours) AS DECIMAL)/sum(SThours) ),5,2) AS Ratios
FROM
   #data
GROUP BY
  Customer,  JobType,  SortMonth

试试此示例fiddle

这是显示获取小数值的简单示例

相关问题