一、用视图:
静安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 的方法循环更新
select 本月值, (本月值-上月值)/上月值 本月值环比
select 本月值, (select t3.本月值 from tb,ta t3 where ta.本月日期 = tb.本月日期 and tb.上月日期 = t3.本月日期) as 上月值
from ta
) aaa
首先明确概念:
环比增长率=(本期数-上期数)/上期数*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%