多表联合查询有关问题

多表联合查询问题
有故障种类表(与treeview控件相连) 还有维修表
gzb wxb
id cna fatherid wxid wxlx wxrq
1 硬件故障 0 op001 硬件故障电源故障软件故障 2010-3  
2 CPU故障 1 lp003 硬件故障 2010-6
3 电源故障 1 li112 CPU故障  
4 软件故障 0 op006 硬件故障 2011-3
5 代码故障 4 op009 硬件故障软件故障电源故障 2011-9


我想用SQL实现如下统计查询:
故障名称 故障数量
硬件故障 4
CPU故障 1
电源故障 2
软件故障 2
代码故障 0


请问高手们,改怎么写呀??
故障一般都不是单一的故障,包括很多,如果查找单一故障,能在条件中用模糊查询做到,但是要是把所有故障做统计,应该怎么写SQL,请高手指教,新手,谢谢。

------解决方案--------------------
这两个表有没有什么字段是相关联的,你的wxlx字段跟cna字段有没有关系的?我估计是没有的,我只想到一个方法,用循环+临时表可以做到,大概如下:
SQL code

declare @i int,
        @num int,--gzb记录总数
         @wxlx varchar(20),
        @count int
declare C1 cursor scroll  for 
            select distinct cna from gzb 
            open C1
fetch first from C1 into @wxlx
set @i=1
set @count=0
select @num=count(*) from gzb

while  @i<=@num
begin
  单一模糊查询语句+保存查询结果到临时表的语句 
  set  @i=@i+1
  Fetch C1 into @wxlx
end

------解决方案--------------------
SQL code
access:

select cna as 故障名称,
sum(iif(instr(wxlx,cna)>0,1,0)) as 故障数量
from gzb, wxb
group by cna,id
order by id