ORACLE:
select 学号,sum(decode(课程号,1010,成绩,0)) as '1010',
    sum(decode(课程号,1011,成绩,0)) as '1011',
    sum(decode(课程号,1013,成绩,0)) as '1013'
from table
group by 学号

解决方案 »

  1.   

    复杂,没有这么容易搞定。楼上讲的是针对固定  课程号的,如果课程号不是固定的呢?我认为应该用游标动态来生成sql 语句,即动态生成
    sum(decode(课程号,1011,成绩,0)) as '1011',
    类似的
    在sql server中就是
    sum(case when 课程号='1011' then 成绩 else 0 end) as '1001'之类的
      

  2.   

    oralce 中:
      CREATE TABLE cj 
      (
      xh NUMBER(4),
      kch NUMBER(4),
      cj  NUMBER(4)
      );
      INSERT INTO cj VALUES(1,1010,98);
      INSERT INTO cj VALUES(1,1011,75);
      INSERT INTO cj VALUES(1,1013,90);
      INSERT INTO cj VALUES(2,1010,92);
      INSERT INTO cj VALUES(2,1011,61);
      INSERT INTO cj VALUES(3,1013,65);
      
    select xh,sum(decode(kch,1010,cj,0))  A1010,
        sum(decode(kch,1011,cj,0)) A1011,
        sum(decode(kch,1013,cj,0))  A1013
    from cj
    group by xh  
      

  3.   

    Transform .... 
    Select  ... From ....
    Group By ...
    Pivot ...
      

  4.   

    用desicion cube控件来显示吧,
    一条语句即可。一条分组语句。