已有如下表:客户编号 报表列号    A       B        起始日期(月初)  截至日期(月末)
0001        1        100     200         2007.01.01      2007.01.31
0001        2        260     180         2007.01.01      2007.01.31
0002        1        300     100         2007.01.01      2007.01.31
0002        2        360     230         2007.01.01      2007.01.31
0001        1        100     200         2007.02.01      2007.02.28
0001        2        240     180         2007.02.01      2007.02.28
0002        1        300     100         2007.02.01      2007.02.28
0002        2        260     170         2007.02.01      2007.02.28
  .         .         .       .               .               .
  .         .         .       .               .               .              .         .         .       .               .               .用SQL查询语句如何实现某一年度以下结果:
              1月           2月          3月         4月      .....   12月
客户编号   A      B      A      B     A        B   A       B 
0001      360    380    340    380
0002      660    330    560    270A 和 B分别为 表列2和表列2的和,也就是按照客户编号及日期起和日起止分组求和

解决方案 »

  1.   

    select 客户编号,
    sum(decode(to_char(起始日期(月初),'yyyydd'),'200701',A,0)) as 一月A,
    sum(decode(to_char(起始日期(月初),'yyyydd'),'200701',B,0)) as 一月B,
    sum(decode(to_char(起始日期(月初),'yyyydd'),'200702',A,0)) as 二月A,
    sum(decode(to_char(起始日期(月初),'yyyydd'),'200702',B,0)) as 二月B,
    ....
    sum(decode(to_char(起始日期(月初),'yyyydd'),'200712',A,0)) as 十二月A,
    sum(decode(to_char(起始日期(月初),'yyyydd'),'2007121',B,0)) as 十二月Bfrom 表名  group by 客户编号;
      

  2.   

    谢谢 kelsoncong了,问题顺利解决,请接分