Bom递归查询有关问题

Bom递归查询问题
---测试数据
if object_id('temp_bom') is not null
drop table temp_bom
go
create table temp_bom(parent_no varchar(30),child_no varchar(30),qty float)
go

insert into temp_bom(parent_no,child_no,qty) values('02001','002',2)
insert into temp_bom(parent_no,child_no,qty) values('02001','04002',4)
insert into temp_bom(parent_no,child_no,qty) values('02001','05003',3)
insert into temp_bom(parent_no,child_no,qty) values('05003','001',3)
insert into temp_bom(parent_no,child_no,qty) values('05003','04001',4)
insert into temp_bom(parent_no,child_no,qty) values('03001','001',3)
insert into temp_bom(parent_no,child_no,qty) values('03001','002',2)
insert into temp_bom(parent_no,child_no,qty) values('03001','04001',4)
insert into temp_bom(parent_no,child_no,qty) values('03001','04002',1)
insert into temp_bom(parent_no,child_no,qty) values('02002','001',2)
insert into temp_bom(parent_no,child_no,qty) values('02002','002',3)
insert into temp_bom(parent_no,child_no,qty) values('02003','05003',2)
insert into temp_bom(parent_no,child_no,qty) values('02003','001',4)
insert into temp_bom(parent_no,child_no,qty) values('02003','002',1)
insert into temp_bom(parent_no,child_no,qty) values('02003','04001',6)
insert into temp_bom(parent_no,child_no,qty) values('02003','04002',1)
insert into temp_bom(parent_no,child_no,qty) values('05003','001',4)
insert into temp_bom(parent_no,child_no,qty) values('05003','04001',5)
insert into temp_bom(parent_no,child_no,qty) values('05003','05004',6)
insert into temp_bom(parent_no,child_no,qty) values('05004','04001',7)
insert into temp_bom(parent_no,child_no,qty) values('05004','04002',2)
go

--02001、02002、02003是成品最终递归查询结果
/* 
成品 材料 数量 是否末级
02001 002 2.00    末级
02001 05003 3.00    非末级
02001 001 12.00   末级
02001 04001 15.00   末级
02001 05004 18.00   非末级
02001 04001 126.00  末级
02001 04002 36.00   末级
02001 04002 4.00    末级

02002 001 2.00 末级
02002 002 3.00 末级

02003 001 4.00 末级
02003 002 1.00 末级
02003 04001 6.00 末级
02003 04002 1.00 末级
02003 05003 2.00 非末级
02003 001 6.00 末级
02003 04001 8.00 末级
*/
------解决方案--------------------
如果你用的数据库是SQL Server2005及以上,参考www.cnblogs.com/smailxiaobai/archive/2012/01/16/2323291.html:SQL With(递归 CTE 查询)
------解决方案--------------------
你这个数据和一般的Bom结构有点不一样。父节点对应多个子节点,子节点又对应多个父节点....
------解决方案--------------------
请问03001为何不是成品最终递归查询结果?