我要设计一个报表,数据库的格式是
学号 姓名   课程名  分数
1    张三   数据库   95
1    张三   C++      86
2    李四   C++      95
2    李四   数据库   89
要求报表的格式为
学号  姓名  数据库  C++
 1    张三   95      86
 2    李四   89      95
请问如何实现?请说的详细一点,我是一个菜鸟。
谢谢!!!!!!!!!

解决方案 »

  1.   

    select 学号,姓名,sum(case 课程名 when '数据库' then 分数 else 0),sum(case 课程名 when 'C++' then 分数 else 0)
    form table
    group by 学号,姓名
      

  2.   

    select t1.学号, t1.姓名, t1.分数, t2.分数 from t1, t2 where t1.学号=t2.学号 and t1.课程名='数据库' and t2.课程名='c++'
      

  3.   

    select t1.学号, t1.姓名, t1.分数, t2.分数 from t as t1, t as t2 where t1.学号=t2.学号 and t1.课程名='数据库' and t2.课程名='c++'
      

  4.   

    就是行转列的问题。
    这个好办,但需要写过程--因为你的课程是不定的。
    如果是oracle数据库可以使用函数decode拼动态sql来解决。