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

Откуда:
Сообщений: 600
Можно ли решить задачу используя один cte запрос ?

Есть справочник со структурой дерево. Категории статей расходов
Есть факты расходов. В отчете нужно показать какой % от расходов по родительской категоии составляют расходы по категории.

Например:
статьясумма%
Расходы2 000100%
- Одежда1 00050%
---- Джинсы80080%
---- Кроссовки20020%
- Продукты1 00050%
---- Пиво50050%
---- Хлеб20020%
---- Пельмени30030%

структура таблиц вот такая:
create table fact_table ( fact_table integer,
                                  category_id  integer,
                                  fact_value numeric(15,2)
                                )

create table nsi_category ( category_id  integer not null,
                                     category_parent_id  integer,
                                     category_name varchar(50)  not null
                                    )

у меня получается только запрос с уровнем категории и суммой по категории
а как получить сумму по родителям и детям для каждой категории не знаю :(
19 ноя 09, 13:20    [7950420]     Ответить | Цитировать Сообщить модератору
 Re: cte. дерево. сумма по детям и родителям  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
когда-то что-то подобное делал
возможно ли такое
19 ноя 09, 13:39    [7950591]     Ответить | Цитировать Сообщить модератору
 Re: cte. дерево. сумма по детям и родителям  [new]
Vitaly86
Member

Откуда:
Сообщений: 600
Паганель
когда-то что-то подобное делал
возможно ли такое

спасибо, то что нужно. правда я не до конца понимаю запрос :)
а можно ли в него же добавить сумму по родительской категории ( чтобы % посчитать)
или это принципиально не получиться
19 ноя 09, 14:09    [7950826]     Ответить | Цитировать Сообщить модератору
 Re: cte. дерево. сумма по детям и родителям  [new]
Vitaly86
Member

Откуда:
Сообщений: 600
все получилось
ещё раз спасибо!
19 ноя 09, 14:24    [7950939]     Ответить | Цитировать Сообщить модератору
 Re: cte. дерево. сумма по детям и родителям  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Мда, с hierarchyid запрос попроще будет. :)
Можно устроить пятничную мерялку эффективности запросов.
Для 2005 и ниже можно через принцип left-right или like path%

И кажись индексированную вью на это уже можно будет навесить.

Паганель, а на счёт цикла - чёта не любит народ WHILE (1=1) + IF BREAK
Ах ну да, там же даже UPDATE построчный (@@RowCount ожидал) - наверно писали на быструю руку.
19 ноя 09, 23:11    [7953654]     Ответить | Цитировать Сообщить модератору
 Re: cte. дерево. сумма по детям и родителям  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Mnior
наверно писали на быструю руку
Да
Я вообще циклы, курсоры и пр. не люблю потому что плохо понимаю
Просто хотел показать, что вариант решения может быть не один
20 ноя 09, 09:25    [7954393]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить