表名为table的表内容如下  year month value  2009 1 1.1  2009 2 1.2  2009 3 1.3  2009 4 1.4  2010 1 2.1  2010 2 2.2  2010 3 2.3  2010 4 2.4  要求查询结果为  year m1 m2 m3 m4  2009 1.1 1.2 1.3 1.4  2010 2.1 2.2 2.3 2.4

解决方案 »

  1.   


    create table t1 (t_y number(4),t_m number(2),t_v number(5,2));insert into t1 values (2009,1,1.1);
    insert into t1 values (2009,2,1.2);
    insert into t1 values (2009,3,1.3);
    insert into t1 values (2009,4,1.4);
    insert into t1 values (2010,1,2.1);              
    insert into t1 values (2010,2,2.2);
    insert into t1 values (2010,3,2.3);
    insert into t1 values (2010,4,2.4);
    commit;
    select t_y,
           sum(decode(t_m,1,t_v,0)) m1,
           sum(decode(t_m,2,t_v,0)) m2,
           sum(decode(t_m,3,t_v,0)) m3,
           sum(decode(t_m,4,t_v,0)) m4
    from t1
    group by t_y
         t_y    m1    m2    m3    m4
    --------------------------------------------
    1 2009 1.1 1.2 1.3 1.4
    2 2010 2.1 2.2 2.3 2.4
      

  2.   

    感谢HJ_daxian的帮助,我新注册的不知道怎么给分,感谢。