如何同时统计本日,本月,本年以及同期,与同期比数据
有表如下,都是存储的某日,四个产品的数量
dt rfdl1 rfdl2 rfdl3 rfdl4
2014-01-01 1 2 3 4
2014-01-02 5 6 7 8
2014-01-03 9 10 11 12
2014-01-04 13 14 15 16
2015-01-01 5 8 10 4
2015-01-02 3 5 15 6
2015-01-03 4 7 5 10
2015-01-04 5 6 7 8
怎么统计各类数据的本日、本月(本月1日截至本日)、本年(本年1月1日截至本日)的相应数据,
以及同期数据,与同比比较的数据。例如下面是统计2015年1月3日相关的信息(不包括3号以后得数据)
本日 同期(日) 同比 本月 同期(月) 同比 本年 同期(年) 同比
rfdl1 4 9 -5 12 15 -3 12 15 -3
rfdl2 7 10 -3 20 18 2 20 18 2
rfdl3 .............................................................
rfdl4 .....................................................................
如果一下很难统计出rfdl1,rfdl2,rfdl3,rfdl4的信息。
那么能单独统计出rfdl1的相关信息吗?在程序里控制逐个去统计。
下面的语句也能逐步实现,有没有更好的方法呢?
select rfdl.rfdl,rfdlly.rfdlly,(rfdl.rfdl-rfdlly.rfdlly) rfdlsub,yfdl.yfdl,yfdlly.yfdlly,(yfdl.yfdl-yfdlly.yfdlly) yfdlsub,nfdl.nfdl,nfdlly.nfdlly,(nfdl.nfdl-nfdlly.nfdlly) nfdlsub
from
(select rfdl1 rfdl from fdlmgr where datatime='2015-01-03') rfdl,
(select rfdl1 rfdlly from fdlmgr where datatime='2014-01-03') rfdlly,
(select sum(rfdl1) yfdl from fdlmgr where datatime>='2015-01-01' and datatime<='2015-01-03') yfdl,
(select sum(rfdl1) yfdlly from fdlmgr where datatime>='2014-01-01' and datatime<='2014-01-03') yfdlly,
(select sum(rfdl1) nfdl from fdlmgr where datatime>='2015-01-01' and datatime<='2015-01-03') nfdl,
(select sum(rfdl1) nfdlly from fdlmgr where datatime>='2014-01-01' and datatime<='2014-01-03') nfdlly