求一个比较难的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
*/