|
|
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
В иерархическом запросе надо вывести сумму по строкам для подчинённых ( т.е без начальника ) , не получается это сделать , не могли бы вы подсказать как это сделать. Заранее благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 17:06 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Pol.kaВ иерархическом запросе надо вывести сумму по строкам для подчинённых ( т.е без начальника ) , не получается это сделать , не могли бы вы подсказать как это сделать. Заранее благодарю. Для начала покажи что у тебя получилось и тестовые данные в виде Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. И в правильном оформлении ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 17:09 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Запрос такой SELECT lpad(' ', 3*level)||Boss as Tree,LEVEL , SYS_CONNECT_BY_PATH(name, '/') AS PATH FROM my_table2 a start with id=1 connect by prior id=Boss ORDER SIBLINGS BY NAME На фото вывод Нужно добавить столбец с суммой зарплаты подчинённых без босса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2018, 17:23 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Необходимо подсчитать Сумму дочерних строк каждого уровня рекурсии без корневой строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 13:55 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Pol.ka, 1. Вас просили сделать тестовые данные, а Вы их не сделали 2. Вас спросили что получилось у Вас и что не получается - Вы так-же не ответили (т.е. в Вашем ответе со скрином нет суммы, нет тестовой таблицы, нет суммы которую Вы получили и того что Вы хотели получить) т.о. Вы пока не сделали ничего чтобы хотя-бы разогнать туман в моем хрустальном шаре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 15:28 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Pol.kaЗапрос такой SELECT lpad(' ', 3*level)||Boss as Tree,LEVEL , SYS_CONNECT_BY_PATH(name, '/') AS PATH FROM my_table2 a start with id=1 connect by prior id=Boss ORDER SIBLINGS BY NAME выдаёт ошибку ORA-00942: table or view does not exist ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 15:50 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Таблица CREATE TABLE my_table2 (id number, Boss number, NAME VARCHAR2(50) , zp NUMBER ); INSERT INTO my_table2 VALUES ( 1 ,0, 'Pushkin', 1); INSERT INTO my_table2 VALUES (2, 1, 'Gvidon' , 2 ); INSERT INTO my_table2 VALUES (3, 1, 'Rzevsii', 3); INSERT INTO my_table2 VALUES (4, 3, 'Dubrovski', 5); INSERT INTO my_table2 VALUES (5, 4, 'Petr1', 4); INSERT INTO my_table2 VALUES (6, 5, 'Nevski', 4); INSERT INTO my_table2 VALUES (7, 3,'Ruslan', 2); INSERT INTO my_table2 VALUES (22, 0, 'Ludmila' , 2 ); INSERT INTO my_table2 VALUES (8, 7, 'Gaivata', 4); INSERT INTO my_table2 VALUES (9, 2, 'Gendalf', 5); INSERT INTO my_table2 VALUES (10, 9, 'Sofia' , 4); INSERT INTO my_table2 VALUES (11, 10, 'Alice' , 5); INSERT INTO my_table2 VALUES (12, 2, 'Santa' , 11); INSERT INTO my_table2 VALUES (13, 14, 'Satana' , 4); INSERT INTO my_table2 VALUES (14, 0, 'God' , 2); INSERT INTO my_table2 VALUES (15, 14, 'Michael' , 5); INSERT INTO my_table2 VALUES (16, 13, 'Azzazel' , 3); INSERT INTO my_table2 VALUES (17, 14, 'Begemot' , 4); INSERT INTO my_table2 VALUES (18, 17, 'Voland' , 5); INSERT INTO my_table2 VALUES (19, 18, 'Maste_r' , 5); INSERT INTO my_table2 VALUES (20, 14, 'Berlioz' , 1); INSERT INTO my_table2 VALUES (21, 1, 'Raskolnikov' , 6); INSERT INTO my_table2 VALUES (22, 21, 'Marmeladov' , 6); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 16:03 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Pol.ka, Ok. пункт 1 пройден Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Переходим к пункту 2 что за суммы получились и какие надо получить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 16:12 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, мб это нужно? 1833945 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2018, 18:48 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
feagor, Примерно , спасибо , теперь осталось только убрать имя Начальников из запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 09:55 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Pol.ka, В процессе постановки задачи Вы имеете уровень БОГ. Кто в вашем примере - Начальник? До сих пор не понятно какие суммы Вы хотели увидеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 10:31 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, С суммами уже все решилось , осталось только из запроса (SELECT lpad(' ', 3*level)||NAME as Tree ,LEVEL , SYS_CONNECT_BY_PATH(name, '/') AS PATH FROM my_table2 a start with id=1 connect by prior id=Boss ORDER SIBLINGS BY NAME ) в третьем столбце убрать имя которое соответствует ему в первой строке , точнее просто убрать его имя , если PUshkin то убрать его имя в 3 столбце его строки и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 10:35 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Pol.kaMaximaXXL, С суммами уже все решилось , осталось только из запроса (SELECT lpad(' ', 3*level)||NAME as Tree ,LEVEL , SYS_CONNECT_BY_PATH(name, '/') AS PATH FROM my_table2 a start with id=1 connect by prior id=Boss ORDER SIBLINGS BY NAME ) в третьем столбце убрать имя которое соответствует ему в первой строке , точнее просто убрать его имя , если PUshkin то убрать его имя в 3 столбце его строки и т.д. Нет, уровень уходит в Старший БОГ. убрать строчку Код: plsql 1. убрать его имя в 3 столбце его строки Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 10:46 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Спасибо за подсказку , я имел ввиду что для каждой строки надо убрать её имя в третьем столбце , для пушкина это пушкин , для гвидона это гвидон и т.д. 1 Sofia /Pushkin/Gvidon/Gendalf/ Без Софии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 10:51 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Pol.ka, Ну если совсем влоб, просто откусить substr or regexp_substr Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 11:01 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
Pol.ka, Можно так Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 11:11 |
|
||
|
Иерархические (рекурсивные) запросы
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Всё вышло чудесно , крайне благодарен. Теперь задача сложнее , необходимо получить всё тоже самое только через WIth Вот что вышло у меня with rec(lvl, ID , NAME , zp , boss ) as ( select 1 lvl, ID , NAME , ZP , boss from my_table2 union ALL select r.lvl + 1, t.id , t.NAME , t.ZP , t.boss from my_table2 t join rec r on t.boss = r.id ) select lvl, lpad(' ', 10*lvl)||NAME , rpad(' ', (lvl - 1) * 3, ' ') || id as ID , NAME , ZP , boss from rec При попытке ORDER SIBLNGS не работает и также надо работать с суммой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2018, 16:04 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39675504&tid=1883716]: |
0ms |
get settings: |
8ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 375ms |

| 0 / 0 |
