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

求SQL语气,多谢

2013-09-05 
求SQL语气,谢谢!姓名科目分数王数学1王数学2王数学3王语文1王数学3张数学3张数学3张语文3得到的结果是:姓

求SQL语气,谢谢!
姓名  科目  分数
王     数学  1
王     数学  2
王     数学  3
王     语文  1
王     数学  3
张     数学  3
张     数学  3
张     语文  3

得到的结果是:
姓名  记录条数 汇总分
王      5       10

张      3       9


谢谢!
[解决办法]

if OBJECT_ID('tempdb..#temp', 'u') is not null   drop table #temp;
go
create table #temp( [姓名] varchar(100), [科目] varchar(100), [分数] INT);
insert #temp
select '王','数学','1' union all
select '王','数学','2' union all
select '王','数学','3' union all
select '王','语文','1' union all
select '王','数学','3' union all
select '张','数学','3' union all
select '张','数学','3' union all
select '张','语文','3' 

--SQL:
SELECT [姓名] , 记录条数=COUNT(*), 汇总分=SUM([分数])
from #temp
GROUP BY [姓名]
/*
姓名记录条数汇总分
王510
张39
*/

[解决办法]

--> 测试数据:@T
declare @T table([姓名] varchar(2),[科目] varchar(4),[分数] int)
insert @T
select '王','数学',1 union all
select '王','数学',2 union all
select '王','数学',3 union all
select '王','语文',1 union all
select '王','数学',3 union all
select '张','数学',3 union all
select '张','数学',3 union all
select '张','语文',3

select [姓名],COUNT(1) AS 记录条数,SUM([分数]) AS 汇总分 from @T GROUP BY [姓名]
/*
姓名   记录条数        汇总分
---- ----------- -----------
王    5           10


张    3           9
*/

热点排行