日期:2014-05-17  浏览次数:20575 次

关于统计分析
元数据

姓名 日期 分数
张三 1 10
张三 1 20
张三 1 30
李四 2 11
李四 2 22
王五 3 10
王五 3 10


效果
姓名 日期 分数
张三 1 10
  1 20
  1 30
  小计 60
李四 2 11
  2 22
  小计 33
王五 3 10
  3 10
  小计 20

------解决方案--------------------
SQL code

declare @test table(姓名 nvarchar(4) ,日期 varchar(10),分数 float(4))
insert into @test 
select N'张三','1','10'union all
select N'张三','1','20'union all
select N'张三','1','30'union all
select N'李四','2','11'union all
select N'李四','2','22'union all
select N'王五','3','10'union all
select N'王五','3','10'
select 姓名,日期,分数 from 
(
    select 姓名,日期,分数,姓名+日期 as sort from @test
    union all
    select '','小计',sum(分数),姓名+日期+'1' from @test group by 姓名,日期
)t
order by sort
/*
姓名   日期         分数
---- ---------- ----------------------
李四   2          11
李四   2          22
     小计         33
王五   3          10
王五   3          10
     小计         20
张三   1          10
张三   1          20
张三   1          30
     小计         60
*/