需求:要求将企业的所有物料都编号存储在表中
     这些物料中有些种类的物料是采购的.有些是自产的.而自产的物料也必然利用其他的物料生产出的(被利用物料同样可能是自产的,也可能是采购的).
要求在系统中,必须能够查询出来哪些物料是自产的,那些是采购的.
还能够查询出来生产一个自产的物料所有祖先原料.
表中还要求能记录当用一中物料生产另一种物料时,需要的数量.
最终,要求在企业打算批量生产一个产品时候,能够计算出来需要采购的原料种类和数量.

解决方案 »

  1.   

    就建一张表就行了,里面有id和parentid字段自单关联,
    oracle的sql里有connect by 等语句能一步实现树结构的遍历查询等。
      

  2.   

    参考以下sql代码:select level||'层',lpad(' ',level*5)||id id 
    from tbl_ework_org_department dept
    start with fid='00000000000'  
    connect by prior dept.id = dept.fid
      

  3.   

    节点为280的所有子节点:
    select * from table
    connect by p_id  =  prior id
    start with id=280;
    节点为280的所有父节点:
    select * from table
    connect by id  =  prior p_id
    start with id=280;
      

  4.   

    select id from test start with id in ( value ) connect by prior id = parent_id