求一sql语句,交叉表
求一sql语句,交叉表   
 有这样一个表 
 ===================================================== 
 车号            吨数         时间                                                                  装车点 
 8                     15                  2006-01-01   08:00:00                     1号站 
 14                  20                  2006-01-01   08:00:00                     2号站 
 50                  15                  2006-01-01   08:00:00                     1号站 
 2                     18                  2006-01-01   08:01:00                     4号站 
 8                     15                  2006-01-01   09:00:00                     1号站 
 4                     16                  2006-01-01   09:00:00                     5号站   
 =====================================================   
 要生成以下表格(装车点也许会有增减)     
 车号   1号站车数合计      1号站吨数合计   2号站车数合计      2号站吨数合计   4号站车数合计      4号站吨数合计   5号站车数合计      5号站吨数合计   车数合计      吨数合计 
 8 
 14 
 50 
 2 
 4
------解决方案--------------------  Declare @S Nvarchar(4000) 
 Select @S =  'Select 车号 ' 
 Select @S = @S +  ', SUM(Case 装车点 When  ' ' ' + 装车点 +  ' ' ' Then 1 Else 0 End) As [ ' + 装车点 +  '车数合计] ' 
 			 +  ', SUM(Case 装车点 When  ' ' ' + 装车点 +  ' ' ' Then 吨数 Else 0 End) As [ ' + 装车点 +  '吨数合计] ' 
 From 表 Group By 装车点 
 Select @S = @S +  ' , Count(*) As 车数合计, SUM(吨数) As 吨数合计 From 表 Group By 车号 ' 
 EXEC(@S)