sqlserver - sql server 查询出现部分错误

查看:218
本文介绍了sqlserver - sql server 查询出现部分错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

select t1.mk,t2.gnjy,t1.rjcw,t3.total,count(t1.rjcw)/(t3.total*1.0) percentage
from (select mk,count(cswhdxs) as rjcw from YSDP_DATA where YEAR(TJSJ)=2015 and CSWHDXS='软件错误' group by mk) t1 left join
     (select mk,count(cswhdxs) as gnjy from YSDP_DATA where YEAR(TJSJ)=2015 and CSWHDXS='功能建议' group by mk) t2 
      on t1.mk=t2.mk left join
     (SELECT mk,count(cswhdxs) AS total FROM YSDP_DATA where year(TJSJ)=2015 group by MK) t3
      on t1.mk=t3.mk
group by t1.MK,t1.rjcw,t2.gnjy ,t3.total
 

查询语句如上,目的很简单,就是统计表中字段CSWHDXS中(特定年份)软件错误 和 功能建议 的数量并算出 软件错误 在该列的占比,最后用另一字段mk进行分类。
现在前4列应该都没有问题,最后一列计算却有明显错误,结果如下图

最后一列明显计算错误,求教大家原因在哪里,应该如何修改。或者是我的思路根本不对。

解决方案


    count(t1.rjcw)/(t3.total*1.0) percentage
    改成
    t1.rjcw/(t3.total*1.0) percentage

这篇关于sqlserver - sql server 查询出现部分错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆