求一简单实用的SQL语句
有这样3张表 
 1、部门表 
 departID   departName 
 1                                    部门A 
 2                                    部门B 
 ... 
 ...   
 2、片区表 
 areaID         areaName 
 1                                    浙江 
 2                                    安徽 
 ... 
 ...   
 3、客流量 
 fluxID      flux         areaID   departID 
 1                        100               1                     1 
 2                        200               1                     2 
 3                        300               2                     1 
 4                        400               2                     2     
 想要得到的结果集如下:   
 第一列         第2列         第3列      (随着片区的记录数递增)   
 null                  浙江            安徽 
 部门A               100               300 
 部门B               200               400     
 求一SQL   
------解决方案--------------------Declare @S Varchar(1000) 
 Select @S =  'Select A.departName As 部门 ' 
 Select @S = @S +  ', SUM(Case C.areaName When  ' ' ' + areaName +  ' ' ' Then B.flux Else 0 End) As [ ' + areaName +  '] ' 
 From 片区表 Order By areaID 
 Select @S = @S +  ' From 部门表 A Left Join 客流量 B On A.departID = B.departID Left Join 片区表 C On B.areaID = C.areaID Group By A.departName ' 
 EXEC(@S)
------解决方案--------------------declare @sql varchar(8000) 
 set @sql= ' '   
 select @sql=@sql+ ',[ '+areaName+ ']=sum(case areaID when  '+rtrim(areaID)+ ' then flux else 0 end) ' from 片区表 group by areaID,areaName   
 set @sql= 'select a.departName '+@sql+ ' from 部门表 a,客流量 b where a.departID=b.departID group by departName '   
 exec(@sql)