环比增加量Oracle计算环比的方法 
Hi,欢迎光临:zxy空间! 收藏我们

Oracle计算环比的方法

本文关键词:环比,增加量,数量,销售,销量,上月,比例,增加 时间:2012-12-26 16:35

“军阀黑帮”《头牌》抢戏 狠角色张力十足梦断总统府蒋介石文臣秘录视频:中国游 广州怪吃 (恐惧 呵呵)养眼美女02尼安德特人『珍藏』人体全息穴区图解 (详图)文静时尚的MM开门美女迎接你(FLASH拉幕效果)童丽 歌剧经典唱段 山丹丹花开红艳艳正确重现被摄景物的色彩 如何设定白平衡《健康之路》 201212好妈妈胜过好医生自然饮食之味正在消失[转载]2013年高送转潜力股一览江湖雨夜杀手欧美电影复仇盐的50个妙用药用玫瑰的栽培技术邢台内丘投资10亿建“扁鹊大道”因罗阳猝死所想到的冬季心肌梗塞

环比就是今年第n月与第n-1月或第n+1月比;同比就是今年第n月与去年第n月比。   建测试表,假设是个销售数量表: create table t (dt date,cnt number);   随便插入些测试数据,最后表的内容如下: DT CNT ---------- ---------- 2012-02-09 15 2012-02-21 2 2012-03-23 1 2012-03-23 5 2012-04-23 2 2012-05-12 20 2012-07-01 20 2012-07-21 20   显示环比,如果某个月没有销售,就有点儿麻烦。   先想个办法,显示本年度的1至12月,有个很有技巧的技术来实现: SQL> set pagesize 20 SQL> with m as (select '2012-'||lpad(rownum,2,'0') v from dual connect by level<=12) select * from m; V --------- 2012-01 2012-02 2012-03 2012-04 2012-05 2012-06 2012-07 2012-08 2012-09 2012-10 2012-11 2012-12   接下来就容易了,两个表外连,使用lag统计函数就可以了。 with m as (select '2012-'||lpad(rownum,2,'0') v from dual connect by level<=12) select m.v "月份",nvl(sum(t.cnt),0) "销售数量", lag(nvl(sum(t.cnt),0),1) over (order by m.v) "上月销量数量", nvl(sum(t.cnt),0)-lag(nvl(sum(t.cnt),0),1) over (order by m.v) "环比增加量", round((case when nvl(sum(t.cnt),0)=0 then null else (nvl(sum(t.cnt),0)-lag(nvl(sum(t.cnt),0),1) over (order by m.v))/nvl(sum(t.cnt),0) end)*100,1) "环比增加比例(%)" from m left outer join t on m.v=to_char(t.dt,'yyyy-mm') group by m.v order by 1 月份 销售数量 上月销量数量 环比增加量 环比增加比例(%) --------- ---------- ------------ ---------- --------------- 2012-01 0 2012-02 17 0 17 100 2012-03 6 17 -11 -183.3 2012-04 2 6 -4 -200 2012-05 20 2 18 90 2012-06 0 20 -20 2012-07 40 0 40 100 2012-08 0 40 -40 2012-09 0 0 0 2012-10 0 0 0 2012-11 0 0 0 2012-12 0 0 0 作者 wallimn

《Android Dev Guide》系列教程12:用户界面之建立对话框Dialogs瓷雕艺术樱花烂漫盘点中国人让老外百思不得其解的怪习惯韩庚参与爱心演唱会 将助阵东方卫视跨年Win7使用快捷键广西原区委书记郭声琨已出任公安部党委书记少女惊艳5宝剑锋从磨砺出.青春有志须勤学

 0.088133096694946 s