oracle怎么快速环比 oracle计算同比环比

oracle10g 通过时间查询同比时间主键,环比时间主键

一、用视图:

静安ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

表只要两个字段就行

pk_period datetime

2451971 2009-02-12

2451978 2009-01-12

2451983 2008-02-12

再建个视图多加两个字段period_tb、period_hb就可以了

pk_period datetime period_tb period_hb

2451971 2009-02-12 2451983 2451978

2451978 2009-01-12 null null

2451983 2008-02-12 null null

二、用程序(各种高级语言;Oracle的触发器、函数等)实现

表还是四个字段pk_period datetime period_tb period_hb

每次添加、修改记录后(1、2的选择看你实际情况)

1、查找该条记录的 环比时间和同比时间记录,找到后将这两条记录(如果有)的主键值更新到这两个字段中

2、搜索整张表所有period_tb\period_hb字段值为null的记录,再用 1 的方法循环更新

怎么在oracle中一起查询出本月值和本月值环比啊(在线等大神)

select 本月值, (本月值-上月值)/上月值 本月值环比

select 本月值, (select t3.本月值 from tb,ta t3 where ta.本月日期 = tb.本月日期 and tb.上月日期 = t3.本月日期) as 上月值

from ta

) aaa

请教Oracle计算同比和环比sql语句

首先明确概念:

环比增长率=(本期数-上期数)/上期数*100% 反映本期比上期增长了多少。

同比增长率=(本期数-同期数)/同期数*100% 指和去年同期相比较的增长率。

数据表名:d_temp_data 

查询数据如下:

查询的sql语句如下:

select a.*,

nvl(round(money/lag(money) over(order by id)*100,2),'0')||'%' "同比",

nvl(round(money/lag(money) over(partition by mon order by id)*100,2),'0')||'%' "环比"

from d_temp_data a

id    iname   year   mon   money   同比   环比

----------------------------------------------------------------------

1 1 飞马股 2013 01 300 0% 0%

2 2 飞马股 2013 02 270 90% 0%

3 3 飞马股 2013 03 350 129.63% 0%

4 4 飞马股 2013 04 180 51.43% 0%

5 5 飞马股 2013 05 500 277.78% 0%

6 6 飞马股 2013 06 400 80% 0%

7 7 飞马股 2014 01 210 52.5% 70%

8 8 飞马股 2014 02 240 114.29% 88.89%

9 9 飞马股 2014 03 320 133.33% 91.43%

10 10 飞马股 2014 04 480 150% 266.67%

11 11 飞马股 2014 05 400 83.33% 80%


网站题目:oracle怎么快速环比 oracle计算同比环比
转载来源:http://hbruida.cn/article/hppjpe.html