本文主要是介绍oracle数据同比的时候除数为0该怎么处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如图,我想同比每年对应月份的cr值,也就是,今年比上年的是增加了还是减少了,然后用得是lag over函数,我并没有深入的了解过这两个函数,然后最后的结果就是,因为cr里面存在0,所以,进行数据同比的时候会报错,提示,除数不能为0,请问这种情况该怎么处理,求各位大神能教教俺,有点着急,在线等~,跪谢
a.*,
nvl(round(a.cr/lag(a.cr) over(partition by month order by a.stat_date)*100,2)-100,'0')||'%' hb
from (
select
t.stat_date,
substr(t.stat_date,0,4) year,
substr(t.stat_date,5,2) month,
t.wccb wccb,
t.tjtb tjtb,
t.cj cj,
trunc(t.cj/t.wccb,4) cr
from
(
select
substr(to_char(t.created_date,'yyyyMMdd'),0,6) stat_date,
count(t.th_id) WCCB,
sum(decode(t.apply_date,null,0,1)) TJTB,
sum(decode(t.elis_policy_no,null,0,1)) CJ
from life_th_app_policy_info t
group by substr(to_char(t.created_date,'yyyyMMdd'),0,6)
order by substr(to_char(t.created_date,'yyyyMMdd'),0,6)
) t
) a
这篇关于oracle数据同比的时候除数为0该怎么处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!