关与一个查询 问题 各位帮忙看看 谢谢
table    
 顶层物料 父项    子料       制/购 类型  用量 
 10001      10001            10001-1         M                     P                     1 
 10001      10001            10001-2         M                     P                     2 
 10001      10001-2      10001-25      M                     P                     2 
 10001      10001-1            A                     M                     N                     2 
 10001      10001-25         B                     M                     N                     2   
    我想找子项中类型为N,   制/购为M的资料的用量(最顶层为1) 
 10001      10001-1            A                     M                     N                     2 
 10001      10001-25         B                     M                     N                     8     
------解决方案--------------------我想找子项中类型为N, 制/购为M的资料的用量(最顶层为1) 
 10001  10001-1    A       M       N       2--这里是不是应该3 ? 
 10001  10001-25   B       M       N       8   
------解决方案--------------------SELECT *,SUM(用量) 总用量 FROM table WHERE 类型= 'N ' AND [制/购]= 'M '
------解决方案--------------------SELECT * FROM table WHERE 类型= 'N ' AND [制/购]= 'M '
------解决方案--------------------我想找子项中类型为N, 制/购为M的资料的用量(最顶层为1) 
 ========================================================= 
 没明白,什么子项?能不能说的明白点?
------解决方案--------------------SELECT * FROM table WHERE 类型= 'N ' AND [制/购]= 'M ' 
------解决方案----------------------寫了個跑游標的,覺得沒這麼單純@_@ ,bom表很複雜的,還有routing的影響     
 --建立函數,查找所有父結點 
 Create   function dbo.fn_test_bom( @child_part varchar(30)) 
 returns @t_level table(part varchar(30),level int) 
 AS 
 begin 
 declare @level int 
 set @level=0 
 insert into @t_level select @child_part,@level 
 while @@rowcount> 0 
 begin 
   set @level=@level+1 
   insert into @t_level select a.parent_part,@level 
   from [Test_bom] a,@t_level b 
   where a.child_part=b.part 
   and b.level=@level-1 
 end 
 return 
 end   
 Go 
 create table Test_bom( topic  varchar(10), parent_part varchar(20), child_part varchar(20), [制/購] varchar(10),類型 varchar(10),quantity int ) 
 insert into Test_bom 
 select  '10001 ', '10001 ', '10001-1 ', 'M ', 'P ',1  union all 
 select  '10001 ', '10001 ', '10001-2 ', 'M ', 'P ',2  union all 
 select  '10001 ', '10001-2 ', '10001-25 ', 'M ', 'P ',2  union all 
 select  '10001 ', '10001-1 ', 'A ', 'M ', 'N ',2  union all