WEB开发网
开发学院数据库MSSQL Server SQL2005中利用PIVOT实现分组统计 阅读

SQL2005中利用PIVOT实现分组统计

 2009-10-30 00:00:00 来源:WEB开发网   
核心提示: 代码是不是很简单,如果在此基础上还要求统计出总分,SQL2005中利用PIVOT实现分组统计(2),并按总分降序排列,只需稍稍做点改动就可以了,代码如下:declare@Strnvarchar(max)set@str='select[Student]'select@str=@st

代码是不是很简单,如果在此基础上还要求统计出总分,并按总分降序排列,只需稍稍做点改动就可以了,代码如下:

declare @Str nvarchar(max)   
set     @str = 'select [Student]'    
select  @str = @str+',['+ Subject + ']' from [StudentsScore] group by [Subject]    
set     @str = @str+',('  
select  @str = @str+'['+ Subject + ']+' from [StudentsScore] group by [Subject]   
set     @str = left(@str,Len(@str)-1)    
set     @str = @str+') AS [总分] FROM (SELECT [Student],[Score],[Subject] FROM [StudentsScore]) AS T PIVOT(SUM([Score]) FOR [Subject] IN ('  
select  @str = @str+' ['+ Subject + '],' from [StudentsScore] group by [Subject]    
set     @str = left(@str,Len(@str)-1)    
set     @str = @str+ ')) AS thePivot ORDER BY [总分] DESC, [Student] ASC'  
exec(@str)   

最终结果如下:

SQL2005中利用PIVOT实现分组统计   SQL2005中利用PIVOT实现分组统计

在程序中可以加上一个打印命令,将实际执行的SQL语句答应出来,如下:

Tags:SQL 利用 PIVOT

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接