请大家帮忙一个sql语句
语句如下:
SELECT
case grouping(t_s_name)
when 0 then t_s_name
when 1 then '合计 '
end as 姓名,
t_result.t_r_result as 成绩, AVG(t_result.t_r_result) AS 平均成绩
FROM t_student INNER JOIN
t_result ON t_student.t_s_studentno = t_result.t_r_studentno
GROUP BY t_s_name, t_result.t_r_result with rollup
生成的结果:
李如龙 94.5 94.500000
李如龙 NULL 94.500000
王清 89.5 89.500000
王清 92.0 92.000000
王清 NULL 90.750000
朱研 78.0 78.000000
朱研 NULL 78.000000
合计 NULL 88.500000
我想把每个人的小计这行的名字换成小计,就像下面这样:
李如龙 94.5 94.500000
小计 NULL 94.500000
王清 89.5 89.500000
王清 92.0 92.000000
小计 NULL 90.750000
朱研 78.0 78.000000
小计 NULL 78.000000
合计 NULL 88.500000
有什么办法吗,请大家帮忙。
------解决方案--------------------改为:
select case when grouping(t_result.t_r_result)=1 then '小计 '
when grouping(t_result.t_r_result)=1 and grouping(t_s_name)=1 then '合计 '
else t_s_name end as 姓名