多表联合查询有关问题
多表联合查询问题
有故障种类表(与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字段有没有关系的?我估计是没有的,我只想到一个方法,用循环+临时表可以做到,大概如下:
有故障种类表(与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