求助:SQL行转列的问题
现有表
TrainerName Session ClassName Date
BenjaminAMCRS TRAINING2012-03-08
BenjaminAMCRS TRAINING2012-03-09
BenjaminAMMicrosoft Exchange Server 2010 2012-03-08
BenjaminAM Microsoft Exchange Server 2010 2012-03-09
需要转换成
TrainerName Session ClassName '2012-03-08' '2012-03-09'
Benjamin AM CRS TRAINING CRS TRAINING CRS TRAINING
Benjamin AM Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010
在线等高手帮忙!谢谢!
[解决办法]
create table car(TrainerName varchar(10), Sessionx varchar(5), ClassName varchar(30), Dates date)insert into carselect 'Benjamin', 'AM', 'CRS TRAINING', '2012-03-08' union all select 'Benjamin', 'AM', 'CRS TRAINING', '2012-03-09' union allselect 'Benjamin', 'AM', 'Microsoft Exchange Server 2010', '2012-03-08' union all select 'Benjamin', 'AM', 'Microsoft Exchange Server 2010', '2012-03-09'select TrainerName, Sessionx, ClassName0, [2012-03-08], [2012-03-09]from (select TrainerName, Sessionx, ClassName ClassName0, ClassName ClassName1, Dates from car) tpivot(max(ClassName1) for Dates in ([2012-03-08],[2012-03-09])) tTrainerName Sessionx ClassName0 2012-03-08 2012-03-09----------- -------- ------------------------------ ------------------------------ ------------------------------Benjamin AM CRS TRAINING CRS TRAINING CRS TRAININGBenjamin AM Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010(2 row(s) affected)