Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Сумма по предкам  [new]
andy13
Member

Откуда:
Сообщений: 45
Помогите с иерархическим запросом

create table TEST
(
id NUMBER,
parent_id NUMBER,
nm NUMBER
);

INSERT INTO TEST (id,parent_id,nm)
SELECT 1,null,10 FROM DUAL UNION ALL
SELECT 2,1,10 FROM DUAL UNION ALL
SELECT 7,1,20 FROM DUAL UNION ALL
SELECT 9,7,10 FROM DUAL UNION ALL
SELECT 3,2,20 FROM DUAL UNION ALL
SELECT 4,3,20 FROM DUAL UNION ALL
SELECT 5,4,10 FROM DUAL UNION ALL
SELECT 6,5,10 FROM DUAL ;


select level,t.* from test t
START WITH t.parent_id is null
CONNECT BY PRIOR id = parent_id
ORDER BY id;


Требуется просуммировать для каждого ID по полю nm по всем предкам до level=1 включительно. Как просуммировать по всем потомкам - знаю.
24 авг 10, 01:55    [9312067]     Ответить | Цитировать Сообщить модератору
 Re: Сумма по предкам  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10043
Oracle version??? If 11g:

select  level,
        t.*,
        xmlquery(ltrim(sys_connect_by_path(nm,'+'),'+') returning content).getnumberval() nm_sum
  from  test t 
  START WITH t.parent_id is null
  CONNECT BY PRIOR id = parent_id
  ORDER BY id
/

     LEVEL         ID  PARENT_ID         NM     NM_SUM
---------- ---------- ---------- ---------- ----------
         1          1                    10         10
         2          2          1         10         20
         3          3          2         20         40
         4          4          3         20         60
         5          5          4         10         70
         6          6          5         10         80
         2          7          1         20         30
         3          9          7         10         40

8 rows selected.

SY.
24 авг 10, 03:00    [9312093]     Ответить | Цитировать Сообщить модератору
 Re: Сумма по предкам  [new]
andy13
Member

Откуда:
Сообщений: 45
SY,

10g
24 авг 10, 09:14    [9312468]     Ответить | Цитировать Сообщить модератору
 Re: Сумма по предкам  [new]
-2-
Member

Откуда:
Сообщений: 15330
andy13,

Агрегация сумм в иерархических запросах
24 авг 10, 09:22    [9312500]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить