将日期行转换为列
以下数据 
 a         2007-1-1 
 b         2007-1-3 
 a         2007-2-3 
 a         2007-4-5 
 a         2007-6-8 
 b         2007-3-3 
 c         2007-3-3 
 d         2007-3-9 
 得到 
 字段1      字段2               字段3               字段4                  字段5 
 a                  2007-1-1      2007-2-3      2007-4-5         2007-6-8 
 b                  2007-1-3      2007-3-3 
 c                  2007-3-3 
 d                  2007-3-9 
 谢谢
------解决方案--------------------create table ta(name varchar(2), date datetime) 
 insert ta select  'a ',    '2007-1-1 ' 
 insert ta select  'b ',    '2007-1-3 ' 
 insert ta select  'a ',    '2007-2-3 ' 
 insert ta select  'a ',    '2007-4-5 ' 
 insert ta select  'a ',    '2007-6-8 ' 
 insert ta select  'b ',    '2007-3-3 ' 
 insert ta select  'c ',    '2007-3-3 ' 
 insert ta select  'd ',    '2007-3-9 ' 
 --通过临时表 
 select *,id=1 into # 
 from ta order by name asc,date asc 
 --更新临时表id为记录数 
 declare @a varchar(2),@i int 
 update # 
 set @i=case when name=@a then @i+1 else 1 end, 
 @a=name,id=@i 
 --查询 
 declare @sql varchar(4000) 
 set @sql= 'select name ' 
 select @sql=@sql+ ',[记录 '+rtrim(id)+ ']=max(case when id= '+rtrim(id)+ 
  ' then convert(varchar(10),date,120) else  ' ' ' ' end) '--不显示null时 
 from # group by id 
 exec(@sql+ ' from # group by name ')   
 name 记录1        记录2        记录3        记录4 
 ---- ---------- ---------- ---------- ---------- 
 a    2007-01-01 2007-02-03 2007-04-05 2007-06-08 
 b    2007-01-03 2007-03-03             
 c    2007-03-03                        
 d    2007-03-09                          
 (4 行受影响)