where条件、group by all 和 rollup不能同时使用,那我怎么实现这个效果呢?
if   exists(select   *   from   sysobjects   where   name= 'p_StatSale ') 
 drop   proc   p_StatSale 
 go 
 create   procedure   p_StatSale 
       @StartDate   datetime, 
       @EndDate   datetime 
 as 
 declare   @s   varchar(8000) 
 select   @s= 'select   组名=(case   when   grouping(b.组名)=1   then    ' ' ' '   when   grouping(b.姓名)=1   then    ' ' ' '   else   b.组名   end), 
                                  姓名=(case   when   grouping(b.组名)=1   then    ' '总计 ' '   when   grouping(b.姓名)=1   then    ' '合计 ' '   else   b.姓名   end) ' 
 select   @s=@s+ ', '+quotename(txt, ' ' ' ')+ '=sum(case   车型   when    '+quotename(txt, ' ' ' ')+ '   then   1   else   0   end) ' 
                         from   tb_car_type      where   depth=2   group   by   txt 
 select   @s=@s+ ',合计=count(车型)   from   vw_car_sale_stat   a   right   join   vw_saler_group   b   on   a.员工编号=b.员工编号 
                         where   销售时间   between    '+quotename(@StartDate, ' ' ' ')+ '   and    '+quotename(@EndDate, ' ' ' ')+ '   group   by      b.组名,b.姓名   with   rollup    ' 
 print(@s) 
 exec(@s) 
 go   
 exec   p_StatSale   @StartDate= '2007-1-1 ',@EndDate= '2007-12-1 '   
 ------------ 
 相关表简单说明 
 tb_car_type:ID      Txt      ParentID      Depth 
 实际是一个双编号的车型树,Depth为2表示具体车型   
 vw_car_sale_stat:车号      车型      员工编号      销售时间   
 vw_saler_group:员工编号   组名 
 ---------- 
 要统计某段时间内所有销售员工所有车型的销售情况,没有销售记录的用零表示 
 大概效果如下: 
 组名      姓名         L4         L4+         GL3.5         GL      GL2.5      总计 
 展厅一部      张三         0               1                  0                  1            0               2 
 展厅一部      李四         1               0                  0                  0            0               1 
                               合计         1            1                  0               1               0               3 
 展厅二部      王五         0               0                  0                  1            0               1 
                               合计         0            0                  0               1             &