元数据姓名 日期 分数
张三 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
张三 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
解决方案 »
- 关于日期的问题
- 如何实现该查询?
- 2000和2005批处理编译的差异
- 急!!!!请高手赐教:Analysis Services中建立多维数据集的问题
- 如何用distinct 或 group by去掉重复数据
- 判断帐号相似度的难题,请高人赐教!
- 用sql如何将行政区划表转换成父级、子级关系区划表
- 急急急!!!!sql2000数据导入的错误!!!未能在sysindexes中找到数据库ID8中对象ID1的索引ID1对应的行。请对sysindexes运行DBCC
- 向各位高手请教有关SQL Server中交叉表的问题
- jdbc-odbc的问题
- 多表触发器问题
- PL/SQL中不用游标如何实现每次获取一个表中的一行?
select 姓名,日期,sum(分数)
from t
group by 姓名,日期可以得到各个人在不同日期的分数合计值,接下来就看你怎么用了。
你给出的值,SQL是不能给出完全相同的统计值的。只能给出于类似。
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
*/