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

比较难的sql语句

2012-01-26 
求一个比较难的sql语句表aamidstypesyearstableimarksprovice1理科2006本科一批503辽宁2理科2006本科二批4

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

热点排行