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

Откуда:
Сообщений: 4
Доброе время суток.
Помогите решить, вопрос. Примеров таких не нашел и не могу понять можно ли так использовать оператор Pivot.

Вот допустим мне надо развернуть таблицу по конкретному столбцу и подсчитать сумму значений другого для каждого полученного выходного столбца. Но кроме этого мне надо в этом же запросе подсчитать итоговую сумму значений в других столбцах или этого же столбца не разбивая их на значения выходных столбцов выше.

SELECT [Категория], SUM([Value2]) as Итого, [1], [2], [3]
FROM
(
SELECT [Категория], [Value], [Value] as [Value2], [Код] FROM [Результаты]
) qry
PIVOT
(
SUM([Value])
FOR [Код] IN ([1],[2],[3])
) pvt
GROUP BY [Категория],[Код]

При этом Если получаются одинаковые значения одной строки в выходных столбцах [1], [2], [3]
к примеру будут 100,100,100. То в столбце Итого будет сумма равняться 100, а не 300 как должно быть
10 май 13, 19:20    [14279837]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли с оператором Pivot Суммировать значения в других столбцах  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
..., [1]+[2]+[3] as Итого

?
10 май 13, 19:29    [14279862]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли с оператором Pivot Суммировать значения в других столбцах  [new]
kirshenman
Member

Откуда:
Сообщений: 4
А если исходный запрос такой :
SELECT [Категория], [Value], [Value2], [Код] FROM [Результаты]
10 май 13, 19:36    [14279883]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли с оператором Pivot Суммировать значения в других столбцах  [new]
kirshenman
Member

Откуда:
Сообщений: 4
А если исходный запрос такой :
SELECT [Категория], [Value], [Value2], [Код] FROM [Результаты]
Я имею ввиду, что итоговую сумму считает по другому столбцу, не связанному с разбиваемым командой pivot
И при этом он считает не верно
10 май 13, 19:40    [14279888]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли с оператором Pivot Суммировать значения в других столбцах  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
да позаменять эти PIVOT на ...SUM(CASE WHEN [Код] = 1 THEN Value ELSE 0 END) as [1]...
10 май 13, 22:47    [14280325]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли с оператором Pivot Суммировать значения в других столбцах  [new]
kirshenman
Member

Откуда:
Сообщений: 4
да придется так и сделать. По крайней мере точно будет считать, что задано.
10 май 13, 23:48    [14280471]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить