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

Откуда:
Сообщений: 231
Добрый день уважаемые эксперты, подскажите пожалуйста:
Исходные данные
Таблица с деревом
Key_Item int,
Key_Parent int,
Name varchar(250)

Таблица с суммами
Key_Record int,
Key_Item int,
YearMonth int, --Год * 100 + Месяц
Summ float

Необходимо сделать 2 вещи:
1. По переданному параметру MonthCount int отобразить в одной строке запроса, Key_Item, Key_Parent, Name, YearMonth_1, Summ_1, YearMonth_2, Summ_2,...YearMonth_MonthCount, Summ_MonthCount.
(пока реализовано программно т.е. из Delphi, хотелось бы не нагружать клиентские машины, а нагрузить сервер)

2. Хотелось бы запросе высчитывать суммы в дереве, рекурсивно вверх, т.е. суммировать поле Summ для всех элементов, содержащие подэлементы. Например:
Key_Item Key_Parent Name Summ
1 0 Один
2 1 Один.Один
3 1 Один.Два 3
4 2 Один.Один.Один 2
Нужно посчитать для Key_Item = 2, Summ = 2, т.к. Key_Parent = 2, В свою очередь для Key_Item = 1, Summ = 2+3 = 5, Key_Parent = 1

Извините что немного сумбурно, по другому не получается объяснить.
Заранее спасибо.
9 дек 12, 13:40    [13602291]     Ответить | Цитировать Сообщить модератору
 Re: Суммирование в дереве  [new]
invm
Member

Откуда: Москва
Сообщений: 9723
1. Динамический PIVOT
2. Рекурсивное CTE
9 дек 12, 14:53    [13602385]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить