select TIMESTAMPADD(HOUR, 8, rq) 日期,org3 三级组织,
org4 四级组织,zgh 工号,zname 姓名,sum(mb) 目标,sum(ce) ce,sum(hsje) 实际
from xsyj
where HOUR between '开始时间' and ’结束时间'
group by yyyy,ym,rq,org3,org4,zgh,zname
order by rq
org4 四级组织,zgh 工号,zname 姓名,sum(mb) 目标,sum(ce) ce,sum(hsje) 实际,if(sum(mb)=0,0,sum(hsje)/sum(mb)) 实际达成率
问sql问题的时候我建议最好指明说哪个数据库比较好,一些函数并不通用,在这里我指出的一点就是被除数为0必须要考虑进去,因为如果当前数据没有0刚好执行成功,若有一天有0数据则就报错,应当规避
最简单是
select *,实际/目标 达成率 from
(select TIMESTAMPADD(HOUR, 8, rq) 日期,org3 三级组织,
order by rq )
select *,( case when 目标 = 0 then 0 else 实际/目标 end) as 达成率 from
) a order by rq
case when 的话基本上数据库都可以用把