![]() |
|
Модераторы: LSD |
![]()
|
|
| turbanoff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 6.4.2009 Репутация: нет Всего: 1 |
Есть 2 таблицы.
нужно по таблице summs сформировать суммы с промежуточными итогами пример SUMMS: ![]() пример IEKR: ![]() нужный результат: |
|||
|
||||
| Zloxa |
|
||||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
1 скалярным подзапросом
2 моделью
Оба варианта - не айс Это сообщение отредактировал(а) Zloxa - 27.5.2011, 09:48 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||
|
|||||
| triclosan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: нет Всего: 12 |
turbanoff, т.е. развернуть все дерево построчно и просуммировать AMOUNT по каждой ветке?
|
|||
|
||||
| turbanoff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 6.4.2009 Репутация: нет Всего: 1 |
triclosan
Да - нужно просуммировать AMOUNT по каждой ветке. Но те ветки, которых нет - они не нужны. В примере для numb=3: есть только iekr_id =101 и =102, поэтому в итогах нет 20 и 201 1. У SUMMS iekr_id может быть только для конечных(листьев дерева) 2. Для каждого numb - свой итог Это сообщение отредактировал(а) turbanoff - 27.5.2011, 12:36 |
|||
|
||||
| triclosan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: нет Всего: 12 |
с коленки:
под рукой ничего нет, что-то похожее возвращает? |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
Нет размотки по иерархии, нет нкопления. Дервяха тут вообще не к месту, результат деградирует к простому джойну. Полагаешь я перемудрил? Добавлено через 6 минут и 20 секунд Мне кажется есть еще способ решить задачу исползуя Recursive Subquery Factoring. Но его ввели только в 11й версии, елси не в 11.2,а его под рукой у меня нет - попробовать (( Это сообщение отредактировал(а) Zloxa - 27.5.2011, 14:10 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| triclosan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: нет Всего: 12 |
||||
|
||||
| turbanoff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 6.4.2009 Репутация: нет Всего: 1 |
У меня 10 XE.
Да PL/SQL можно. Результат в другую таблицу записать. В базе строк ~50к и растет. Ну и я уменьшил количество полей для примера Все, что я пробовал - работало, скажем, недостаточно быстро. Думал, мб если на SQL можно ухитриться - то быстрее буддет |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
если так, то в первом запросе не нужен start with и connect by в основном запросе. Вы попробовали предложенные мною варианты? мне безумно интересно какой из них оказался менее производительным на объеме. для реализации этого условия, в моих примерах можно добавить фильтр по SUMM_AMOUNT > 0 или SCALAR_SUM >0 Это сообщение отредактировал(а) Zloxa - 27.5.2011, 16:41 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| turbanoff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 6.4.2009 Репутация: нет Всего: 1 |
1-й за приемлемое время выполнить не удалось. Сейчас 2-й попробую |
|||
|
||||
| turbanoff |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 6.4.2009 Репутация: нет Всего: 1 |
2-й тоже. возможно дело в том что в дереве довольно много элементов: 250
а запрос идет по всему дереву для каждого numb |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |