首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请大家帮忙一个sql语句,该如何解决

2012-01-30 
请大家帮忙一个sql语句语句如下:SELECTcasegrouping(t_s_name)when0thent_s_namewhen1then合计endas姓名,t

请大家帮忙一个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 姓名

热点排行