数据表table1
   部门    时间    级别   A类  B类
   部门A   ..        1                是
   部门B   ..        2        是   
   部门C   ..        2                是
   部门C   ..        3        是
 
想统计各个部门 是A类和B类的数据次数
 以上的数据 A类 部门A为0次 部门B为1次 部门C也为一次
 B类  部门A为一次  部门B为0次  部门C为1次
  这种效果 经高人指点已经实现  代码如下:
select 部门,A类=sum(case when A类='是' then 1 else 0 end),
            B类=sum(case when B类='是' then 1 else 0 end)
 from tb group by 部门 现在 再想把以上稍作调整 
A类       所有部门为2次 部门A为0次 部门B为1次 部门C也为1次
B类       所有部门为2次  部门A为1次  部门B为0次  部门C为1次
A类和B类    一共4次         一共1次         1次            2次这样可以把上面的sql 做下调整吗?

解决方案 »

  1.   

    就像这种
                  所有部门    A部门       B部门      C部门      D部门
       A类               2            0              1            1             0    
       B类               2            1              0            1             0
       所有类          4            1              1            2             0
      

  2.   

    select isnull(部门,'所有类'),A类=sum(case when A类='是' then 1 else 0 end),
                 B类=sum(case when B类='是' then 1 else 0 end)
      from tb group by 部门 with rollup