读书人

比较难的sql语句

发布时间: 2012-01-26 19:40:46 作者: rapoo

求一个比较难的sql语句
表 aa
mid stype syear stable imark sprovice
1 理科 2006 本科一批 503 辽宁
2 理科 2006 本科二批 403 辽宁
怎么才能得到如下结果:

本科一批 本科二批
2002 503 403


特别求助


[解决办法]
drop table aa
go
create table aa(mid int,stype varchar(10),syear char(4),stable varchar(20),imark int,sprovice varchar(10))
insert into aa
select 1, ' 理科 ', '2006 ', '本科一批 ',503, '辽宁 '
union all select 2, '理科 ', '2006 ', '本科二批 ',403, '辽宁 '
declare @sql varchar(1000)
set @sql= ' '
select @sql=@sql+ ',max(case when stable= ' ' '+stable+ ' ' ' then imark else 0 end) as ' ' '+stable+ ' ' ' '
from (select distinct stable from aa)t
exec( 'select syear '+@sql+ ' from aa group by syear ')
/*
syear 本科二批 本科一批
----- ----------- -----------
2006 403 503
*/

读书人网 >SQL Server

热点推荐