本帖最后由 jimmylin040 于 2011-06-16 11:10:13 编辑

解决方案 »

  1.   

    参照http://topic.csdn.net/u/20100304/12/8fe25f7d-9a44-412f-afb7-a754016363c9.html
      

  2.   

    SQL> desc bom
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     MATERIAL_CODE                                      VARCHAR2(20)
     CHILD_ID                                           VARCHAR2(20)
     PARENT_ID                                          VARCHAR2(20)
     WAST                                               NUMBERSQL> select * from bom;MATERIAL_CODE        CHILD_ID             PARENT_ID                  WAST
    -------------------- -------------------- -------------------- ----------
    FG                   FG                   1                           .01
    M1                   M1                   FG                          .02
    M2                   M2                   FG                         .015
    M2-1                 M2-1                 M2                          .01
    M2-1.1               M2-1.1               M2-1                        .03SQL> SELECT material_code,
      2         dbms_aw.eval_number(ltrim(sys_connect_by_path(wast, '*'), '*')) wast
      3    FROM bom
      4   START WITH parent_id = '1'
      5  CONNECT BY nocycle PRIOR child_id = parent_id;MATERIAL_CODE              WAST
    -------------------- ----------
    FG                          .01
    M1                        .0002
    M2                       .00015
    M2-1                   .0000015
    M2-1.1               .000000045SQL>