F_STATICDAYTIME F_DEADPOPNUM
2009-01-31 10
2009-02-28 14
2009-03-31 15
2009-04-30 19
2009-05-31 27
2009-06-30 31
2009-06-30 50
2009-07-31 33
2009-08-31 39
2009-09-30 45
2009-10-31 55
2009-11-30 69
2009-12-31 30
2009-12-31 31
2010-01-31 89
2010-02-28 99
2010-03-31 102
2010-04-30 108
2010-05-31 122
2010-06-30 126
2010-06-30 30
2010-07-31 148
2010-08-31 169
2010-09-30 170
2010-10-31 187
2010-11-30 196
2010-12-31 240
2010-12-31 205数据如上所示,目的是要求2009年、2010年上半年和下半年的数据,用相减得方法求得,
比如2009年上半年的数据就是2009年6月30日的数据,如果有多个6月30日,就将多个6月30日相加,
2009年下半年的数据就是2009年12月31日的数据减去2009年6月30日的数据,如果有多个,则用12月31日数据的和减去6月30日数据的和(比如sum(12月31日数据)-sum(6月30日数据))按照上面的数据查询结果如下:
时间 数据(F_DEADPOPNUM)
2009年上半年 81
2009年下半年 -20(计算方法:30+31-50-31)
2010年上班年 156
2010年下半年 289(计算方法:240+205-126-30)分数不多,求各位大虾多多帮忙,小弟在此谢谢了。
2009-01-31 10
2009-02-28 14
2009-03-31 15
2009-04-30 19
2009-05-31 27
2009-06-30 31
2009-06-30 50
2009-07-31 33
2009-08-31 39
2009-09-30 45
2009-10-31 55
2009-11-30 69
2009-12-31 30
2009-12-31 31
2010-01-31 89
2010-02-28 99
2010-03-31 102
2010-04-30 108
2010-05-31 122
2010-06-30 126
2010-06-30 30
2010-07-31 148
2010-08-31 169
2010-09-30 170
2010-10-31 187
2010-11-30 196
2010-12-31 240
2010-12-31 205数据如上所示,目的是要求2009年、2010年上半年和下半年的数据,用相减得方法求得,
比如2009年上半年的数据就是2009年6月30日的数据,如果有多个6月30日,就将多个6月30日相加,
2009年下半年的数据就是2009年12月31日的数据减去2009年6月30日的数据,如果有多个,则用12月31日数据的和减去6月30日数据的和(比如sum(12月31日数据)-sum(6月30日数据))按照上面的数据查询结果如下:
时间 数据(F_DEADPOPNUM)
2009年上半年 81
2009年下半年 -20(计算方法:30+31-50-31)
2010年上班年 156
2010年下半年 289(计算方法:240+205-126-30)分数不多,求各位大虾多多帮忙,小弟在此谢谢了。
2 sum(decode(to_char(F_STATICDAYTIME,'mmdd'),'0630',F_DEADPOPNUM,0))
3 from tbl_sum t where to_char(F_STATICDAYTIME,'yyyy')in ('2009','2010')
4 group by to_char(F_STATICDAYTIME,'yyyy')||'年上半年'
5 union
6 select to_char(F_STATICDAYTIME,'yyyy')||'年下半年',
7 sum(decode(to_char(F_STATICDAYTIME,'mmdd'),'0630',-F_DEADPOPNUM,'1231',F_DEADPOPNUM,0))
8 from tbl_sum t where to_char(F_STATICDAYTIME,'yyyy')in ('2009','2010')
9 group by to_char(F_STATICDAYTIME,'yyyy')||'年下半年';
TO_CHAR(F_STATICDAYTIME,'YYYY' SUM(DECODE(TO_CHAR(F_STATICDAY
------------------------------ ------------------------------
2009年上半年 81
2009年下半年 -20
2010年上半年 156
2010年下半年 289
SQL>
大虾,这句话我有点看不明白,你能解释一下吗?
它的作用应该是用12月31日减去6月30日的数据,
但是从decode的作用看,怎么达到这个目的的呢?
小弟理解如下:如果等于0630,则等于 -F_DEADPOPNUM;
如果等于1231,则等于F_DEADPOPNUM,否则等于0,
但是怎么起到相减得作用呢?