本人在作一个电费收费项目,客户要求统计考核表与被考核的子表的用电量,考核表有多层隶属关系。请教各位专家,如何得到各级的用电量。    急!!!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    给个参考贴:
    http://expert.csdn.net/Expert/topic/1774/1774674.xml?temp=.3117792
      

  2.   

    表名:sample
    字段:id            NUMBER(18)
          name          VARCHAR2(40)
          parent_id     NUMBER(18) 
    其中存放一个树形结构的内容。SQL> select lpad(name,level*2+length(name),' ') name
      2    from sample x
      3  connect by prior id = parent_id
      4   start with parent_id = 0;效果可以如下。
          name1
             name2
                name3
                name4
             name5
                name6
                name7
      

  3.   

    http://expert.csdn.net/Expert/topic/1551/1551178.xml?temp=.2106592
      

  4.   

    http://expert.csdn.net/Expert/topic/1551/1551178.xml?temp=.2106592
      

  5.   

    select lpad(name,level*2+length(name),' ') name
      from sample x
    connect by prior_id = parent_id
    start with parent_id = 0;
    以上语句能否解释一下.
      

  6.   

    应该是connect by prior id = parent_id
    这里面的id和parent_id是列名
    那条sql的意思是说,以parent_id=0的那些行为树根,进行查找,
    如果某一行的parent_id与前面查出来的某行的id相等,则是满足条件的行。
    在使用start with connect by的时候,where是在数据都查出来以后才进行过滤。而start with 中的条件(可以有多个条件),是在树状结构查出来之前起作用。即where是去掉不满足条件的若干点,而start with中的条件是剪掉整个支叉。