|
Помогите подсчитать количество
|
|||
---|---|---|---|
#18+
Здравствуйте! Требуется помощь в решении такой проблемки: Есть 2 таблицы: Код: 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.
Мне нужно найти количество дочерних объектов и количество расстояний между ними. ОК, пишу процедуру: Код: 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.
Подсчет дочерних объектов выполняется нормально, а вот при подсчете расстояний происходит двойной учет расстояний между родителем и наследниками. (Т.е. дважды учтутся расстояния с ID 3 и 4) Пока решил это так: создал временную табличку GTT_DIST, в которую записываю ID расстояний (см. закомментаренные строки в процедуре), а после ее выполнения делаю Код: plsql 1.
и все в норме. Но терзают смутные сомненья (с), что можно как-то проще, изящнее. Вот прошу уважаемое сообщество подсказать, в каком направлении искать альтернативное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2015, 06:29 |
|
Помогите подсчитать количество
|
|||
---|---|---|---|
#18+
Да, забыл указать: Firebird 2.5.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2015, 08:10 |
|
Помогите подсчитать количество
|
|||
---|---|---|---|
#18+
Процедура, возвращающая количество уровней между объектами дерева DIFF_LEVEL -1 -Не потомок -2 -Зацикливание в дереве Иначе - количество уровней На примере таблицы BOOK с полями Id, Parent Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2015, 08:43 |
|
Помогите подсчитать количество
|
|||
---|---|---|---|
#18+
Количество детей: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Насчёт количества расстояний не понятно. Возможно несколько вариантов: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2015, 09:21 |
|
Помогите подсчитать количество
|
|||
---|---|---|---|
#18+
Tonal, Да, похоже первый вариант - то что нужно. Только мне нужно получить количество расстояний между объектами, включая родителя: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2015, 09:55 |
|
|
start [/forum/topic.php?fid=40&fpage=75&tid=1562788]: |
0ms |
get settings: |
14ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 269ms |
total: | 408ms |
0 / 0 |