高度难动态BOM成本计算 
成本计算成最下级算到最上级的。BOM表 
         产品    产品数量   原料          原料数   单价
BILLID  MGOODSID   MQTY   DGOODSID ITEMNO  DQTY   DPRICE 
584     A001        1     B001      1      1       ??  (半成品)    
584     A001        1     C001      2      2      5    (原料)    2个C001组成 
584     A001        1     D001      3      1      5  (原料) 
588     B001        1     E001      1      1      3    (原料) 
588     B001        1     F001      2      2       ??    (半成品)  2个F001组成 
560     F001        1     G001      1      1      2  (原料) 
560     F001        1     J001      2      2      2  (原料)    2个J001组成 树型结构如下:
                      A001  *1 
            |              |            | 
        B001 *1          C001 *2    D001  *1 
    |        | 
  E001 *1    F001 *2 
            |      |        
          G001 *1  J001 *2 
求: 
1、要求结果按物料清单最底层原料起计算推算出半成品、成品的单价,希望能做成函数或存储过程。 MGOODSID  MQTY,  DGOODSID,  DQTY,   DPRICE,   DAM 
A001        1      B001      1      15        15   ---B001单价是算出来的
A001        1      C001      2      5         10 
A001        1      D001      1      5         5 
B001        1      E001      1      3         3 
B001        1      F001      2      6         12   ---F001单价是算出来的
F001        1      G001      1      2         2  
F001        1      J001      2      2         4 2、如果BOM数据量比较大时上面的方法运算就比较慢了,有没有办法只查询某货品如 A001时, 
只计算跟A001相关货品。 
WHERE M.GOODSID='A001'时的结果如下: 
MGOODSID  MQTY,  DGOODSID, DQTY,  DPRICE,  DAM 
A001        1      B001      1      15     15   ---B001单价是算出来的
A001        1      C001      2      5      10 
A001        1      D001      1      5      5