十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
substr(t.salarymonth, -2)) "同比",
10年积累的网站设计制作、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有阜康免费网站建设让你可以放心的选择与我们合作。
sum(t.salary) /
(select sum(t1.salary)
from D_MONTH_SALARY t1
where t1.salarymonth =
to_char(to_date(t.salarymonth, 'yyyymm') - 1, 'yyyymm')) "环比"
from D_MONTH_SALARY t
group by t.salarymonth;
出累计环比 肯定要出累计值 这个事没话说的! 所以只能出到最细粒度的累积表 增量的最好! 这样统计数据就比较灵活准确性也较高
一、用视图:
表只要两个字段就行
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