科目是一定要先确定的
select 姓名,sum(decode(科目,'语文',成绩,0)) 语文,
sum(decode(科目,'数学',成绩,0)) 数学,
sum(decode(科目,'英语',成绩,0)) 英语,
sum(成绩) 合计
from tablename
select 姓名,sum(decode(科目,'语文',成绩,0)) 语文,
sum(decode(科目,'数学',成绩,0)) 数学,
sum(decode(科目,'英语',成绩,0)) 英语,
sum(成绩) 合计
from tablename
select 姓名,sum(decode(科目,'语文',成绩,0)) 语文,
sum(decode(科目,'数学',成绩,0)) 数学,
sum(decode(科目,'英语',成绩,0)) 英语,
sum(成绩) 合计
from tablename group by 姓名
sum(case 科目 when '数学' then 成绩 else 0 end) 数学,
sum(case 科目 when '语文' then 成绩 else 0 end) 语文,
sum(成绩) 合计
from tablename group by 姓名
如果是在SQL*PLUS中,做存储过程来解决。
如果是在report builder中就好办了,有交叉报表可以解决。