sqlserver 里怎么求百分比

来源:百度知道 编辑:UC知道 时间:2024/06/28 16:47:33
select REALHANDLER, count(*) as 总数, sum(case when status='RESOLVED' then 1 else 0 end)as 已解决,
sum(case when status!='RESOLVED' then 1 else 0 end)as 未解决,
sum(case when status='RESOLVED' then 1 else 0 end)/count(*) as 完成率
from INCIDENT
group by REALHANDLER
这是我的代码,可是在完成率那显示的如果小于1的都显示为0,求高手指点,此是运用在报表里的。

--将1改成1.00,0 改成0.00
select REALHANDLER, count(*) as 总数, sum(case when status='RESOLVED' then 1 else 0 end)as 已解决,
sum(case when status!='RESOLVED' then 1 else 0 end)as 未解决,
sum(case when status='RESOLVED' then 1.00 else 0.00 end)/count(*) as 完成率
from INCIDENT
group by REALHANDLER

这个就是因为你没有为case when status='RESOLVED' then 1 else 0 end定意数据类型告成的的sum(case when status='RESOLVED' then 1 else 0 end) decimal 定认成这种数据类型就可以了