如何实现分组统计
有三张表 【数据均为例子,可能不是很准,就是表达这个意思,呵呵】
1、第一张表故障类型表typeinfo
故障类型字段(GzID) 故障类型字段(GzNAME)
1 网路故障
2 打印机故障
3 复印机故障
4 传真机故障
2、第二张表地区表Areainfo
故障类型字段(AreaID) 故障类型字段(AreaNAME)
a1 东城区
a2 北城区
a3 西城区
a4 南城区
3、第三张表业务类型表signinfo 如下
故障类型字段(GzType) 故障地区字段(GzArea)
1 a1
2 a1
3 a2
4 a3
1 a1
2 a2
3 a3
4 a4
1 a1
2 a1
3 a2
4 a3
1 a1
2 a2
3 a3
4 a4
。。。。。。
想得到以下的结果显示列表,如下
代维公司 网路故障 打印机故障 传真机故障 复印机故障 总计
东城区 3 2 1 0 6
西城区 3 2 1 0 6
南城区 3 2 1 0 6
北城区 3 2 1 0 6
总计 12 8 4 24
怎么实现呢,我的思路是分组统计,再建立临时表插入。可是这好像不止一个分组。谢谢,在线等。
------解决方案--------------------
SQL code
select isnull(t.AreaNAME , '总计') 代维公司,
sum(case m.GzNAME when '网路故障' then 1 else 0 end) 网路故障,
sum(case m.GzNAME when '打印机故障' then 1 else 0 end) 打印机故障,
sum(case m.GzNAME when '复印机故障' then 1 else 0 end) 复印机故障,
sum(case m.GzNAME when '传真机故障' then 1 else 0 end) 传真机故障,
count(1) 总计
from Areainfo t , typeinfo m , signinfo n
where t.AreaID = n.GzArea and n.GzType = m.GzID
group by t.AreaNAME with rollup