大家好啊,我问大家一个SQL问题表存取数据是这种形式:
姓名 科目 分数
张三 语文 78
张三 数学 87
张三 英语 66
李四 语文 35
李四 数学 47
李四 英语 98需要通过select 语句转变成
用一个sql完成
姓名 语文 数学 英语
张三 78   87    66
李四 35   47    98 哪位帮忙看看。怎么实现。。 先谢谢了

解决方案 »

  1.   

    是PHP+MYSQL来实现的,具体怎么样来实现呢
      

  2.   

    select 姓名, sum(科目1) as 语文, sum(科目2) as 数学, sum(科目3) as 英语 from 
           (select 姓名, 
                   (case when 科目='语文' then 分数 else 0 end) 科目1,
                   (case when 科目='数学' then 分数 else 0 end) 科目2,
                   (case when 科目='英语' then 分数 else 0 end) 科目3 from 成绩表) a
           group by a.姓名
           order by a.姓名
      

  3.   

    select 姓名, sum(科目1) as 语文, sum(科目2) as 数学, sum(科目3) as 英语 from 
           (select 姓名, 
                   (case when 科目='语文' then 分数 else 0 end) 科目1,
                   (case when 科目='数学' then 分数 else 0 end) 科目2,
                   (case when 科目='英语' then 分数 else 0 end) 科目3 from 成绩表) a
           group by a.姓名
           order by a.姓名