Oracle树形统计--子节点汇总到父节点

原创 2017年01月03日 10:38:32
初始的树形数据状态:
      |--2(0)--4(100) 
0--1(0)--|

      |--3(0)--5(200)


汇总后的树形数据状态:      
           |--2(100)--4(100) 
0--1(300)--|
           |--3(200)--5(200)
           
create table t
(
   id number,
   parent_id number,
   value number
);
insert into t values(1,0,0);
insert into t values(2,1,0);
insert into t values(3,1,0);
insert into t values(4,2,100);
insert into t values(5,3,200);
commit;

SQL> select * from t order by id asc;
  ID  PARENT_ID      VALUE
---- ---------- ----------
   1          0          0
   2          1          0
   3          1          0
   4          2        100

   5          3        200


SQL> with ttt as (select t.*,SYS_CONNECT_BY_PATH(id,'/')||'/' path
    from t  start with t.parent_id=0 connect by prior t.id=   t.parent_id)
    SELECT id,
           parent_id,
           value,
          (SELECT SUM(value) FROM ttt WHERE path like t1.path || '%') s_value
      FROM ttt T1;
  ID  PARENT_ID      VALUE    S_VALUE
---- ---------- ---------- ----------
   1          0          0        300
   2          1          0        100
   4          2        100        100
   3          1          0        200
   5          3        200        200

相关文章推荐

oracle树形数据汇总

1:原始数据 2:执行sql语句 UPDATE test_t T1 SET T1.VAL = (SELECT DECODE(SUM(VAL), NULL, T1.val, SUM(V...

Oracle树结构查询及层级排序

Oracle 9i也提供了一个ORDER BY子句的关键字SIBLINGS,允许对层次数据以有意义的方式进行分类,同时保留层次结构。 如: SELECT RPAD(' ', 2*(LEVE...

整理oracle 树形查询

sql树形递归查询是数据库查询的一种特殊情形,也是组织结构、行政区划查询的一种最常用的的情形之一。下面对该种查询进行一些总结:1、查找某个节点下面子孙节点select * from table sta...

Oracle树形结构的sql语句

ORACLE提供了一种树形结构用来实现层次查询:     START WITH :指定记录是根节点的条件。根节点可以有多个。     CONNECT BY :指定记录之间是父节点和子节点关系的条件...

Oracle树查询(查询所有子节点,父节点等等)

Oracle树查询的最重要的就是select...start with... connect by ...prior 语法了。依托于该语法,我们可以将一个表形结构的中以树的顺序列出来。在下面列述了...

Oracle 递归统计所有节点下的子节点个数

/*create table test_category( cid varchar2(20),  parentid varchar2(20) ); create table test_catego...

求思路:递归查询后,数据根据父节点分组统计!!!

RT, 例: 一个树状公司表  company              字段:               id ,--id ,pid ,- 父节点,name--名称,type--类型。  ...

oracle 递归 树形结构数据查询

connect by 是结构化查询中用到的,其基本语法是:  select ... from tablename start with cond1  connect by cond2  wher...

java获取字节的长度.

package pack.java.midea.dao; import java.io.UnsupportedEncodingException; /**  * 测试;  * @aut...

FreeMarker内置命令(字符串命令)

一、substring            NOTE: 这个内置以来2.3.7 FreeMarker的存在        语法exp?substring(from,toExclusive),也可...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle树形统计--子节点汇总到父节点
举报原因:
原因补充:

(最多只允许输入30个字)