报表分析
 我有一张表A 
 序号         品名         数量      日期 
 1                  产品1         20            2006-12-9 
 2                  产品1         10            2006-12-15 
 3                  产品2         15            2006-11   23 
 4                  产品3         12            2006-11-24 
 5                  产品4         10            2007-01-4 
 6                  产品6         10            2007-01-8 
 7                  产品6         15            2007-01-7   
 我用SQL按月份累加了 
 select   品名,数量=sum(数量,DATEPART(month,   日期)   as   月份   from   A   group   by   品名,DATEPART(month,   开单日期) 
 效果如下: 
 序号         品名      数量         月份 
 1                  产品1         30               12 
 2                  产品2         15               11 
 3                  产品3         12               11 
 4                  产品4         10               1 
 5                  产品6         25               1          
 我现在想输入格式为: 
 品名         12月份         11月份            1月份 
 产品1         30                     0                           0 
 产品2            0                     15                        0 
 产品3            0                     12                        0 
 产品4            0                     0                           10 
 产品6            0                     0                           25 
 请问这样的SQL要怎么写? 
 不知在C#里用水晶报表能否做到?
------解决方案--------------------create table tab 
 ( 
 DateClass varchar(10), 
 Class varchar(20), 
 count varchar(20) 
 ) 
 insert into tab select  '产品1 ', '30 ', '12 ' 
 insert into tab select  '产品2 ', '15 ', '11 ' 
 insert into tab select  '产品3 ', '12 ', '11 ' 
 insert into tab select  '产品4 ', '10 ', '1 ' 
 insert into tab select  '产品5 ', '25 ', '1 '     
 --语句 
 declare @sql varchar(2000) 
 set @sql =  'select DateClass  '   
 select @sql = @sql +  ',sum(case count when  ' ' '+a.count+ ' ' ' then class else 0 end )as [ '+a.count+ '月] ' 
 from (select distinct count from tab)a   
 set @sql = @sql +  ' from tab group by DateClass '   
 exec(@sql)
------解决方案--------