请大家帮忙一个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.594.500000
李如龙 NULL94.500000
王清 89.589.500000
王清 92.092.000000
王清 NULL90.750000
朱研 78.078.000000
朱研 NULL78.000000
合计 NULL88.500000
我想把每个人的小计这行的名字换成小计,就像下面这样:
李如龙 94.594.500000
小计 NULL94.500000
王清 89.589.500000
王清 92.092.000000
小计 NULL90.750000
朱研 78.078.000000
小计 NULL78.000000
合计 NULL88.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 姓名