powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / PIVOT не удается HELLP
7 сообщений из 7, страница 1 из 1
PIVOT не удается HELLP
    #39872216
Samat Samat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С_Sale_Items __Data ___ N_Amount
ГВС_________201812___0,00
ХВС_________201812___100,00
Э/Э_________201812___30,00
ГВС_________201812___170,00
ХВС_________201812___105,0
Э/Э_________201812___45,00
ГВС_________201901___165,00
ХВС_________201901___110,00
Э/Э_________201901___55,00
ГВС_________201901___185,00
ХВС_________201901___115,00
Э/Э__________201901___60,00
ГВС__________201902___165,00
ХВС_________201902___110,00
Э/Э__________201902___55,00
ГВС__________201902___185,00
ХВС_________201902___115,00
Э/Э__________201902___60,00

Нужно вывести общие суммы начислений за каждый месяц по каждой услуге за все время, так чтобы услуги были в столбцах, месяца в строках.

Код: sql
1.
2.
3.
4.
SELECT C_Sale_Items,STR(100*YEAR(D_Date)+MONTH(D_Date),6),N_Amount
FROM FD_Bills
PIVOT (SUM(N_Amout)
FOR C_Sale_Items IN ([ГВС], [ХВС], [Э/Э])) AS PV;
...
Рейтинг: 0 / 0
PIVOT не удается HELLP
    #39872529
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_Date - date колонка?

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT 100*YEAR(D_Date)+MONTH(D_Date) as [Data], SUM([ГВС]) as [ГВС], SUM([ХВС]) as [ХВС], SUM([Э/Э]) as [Э/Э]
FROM @t t
PIVOT (
SUM(N_Amount)
FOR C_Sale_Items IN ([ГВС], [ХВС], [Э/Э])
) AS PV
GROUP BY 100*YEAR(D_Date)+MONTH(D_Date);
...
Рейтинг: 0 / 0
PIVOT не удается HELLP
    #39872590
Samat Samat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Remind,

Чудно. Спасибо. У самого дым из ушей уже шел. Я еще в дальнейшем обращусь, будешь наставником?
...
Рейтинг: 0 / 0
PIVOT не удается HELLP
    #39872629
Samat Samat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Remind,

Ты не мог бы указать ошибку? Ругается : Сообщение 102, уровень 15, состояние 1, строка 5
Неправильный синтаксис около конструкции "(".

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT C_Sale_Items, SUM(201812) AS [201812], SUM(201901) AS [201901], SUM(201902) AS [201902]
FROM FD_Bills
PIVOT (
SUM(N_Amount)
FOR (100*YEAR(D_Date)+MONTH(D_Date))   IN ([201812], [201901], [201902])
) AS PV
GROUP BY C_Sale_Items




Модератор: Пользуйтесь тегом SRC
...
Рейтинг: 0 / 0
PIVOT не удается HELLP
    #39872671
nullin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Samat Samat,

https://docs.microsoft.com/ru-ru/sql/t-sql/queries/from-using-pivot-and-unpivot?view=sql-server-2017

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
PIVOT  
(  
    <aggregation function>(<column being aggregated>)  
FOR   
[<column that contains the values that will become column headers>]   
    IN ( [first pivoted column], [second pivoted column],  
    ... [last pivoted column])  
) AS <alias for the pivot table> 


после FOR должно находится имя столбца, т.е. в данном случае нужно во вложенном запросе дать той конструкции, которая есть после FOR - алиас, а потом уже использовать его

и еще:
Samat Samat
Код: sql
1.
SELECT C_Sale_Items, SUM([201812]) AS [201812] 

sum(2) равно 2 при любом раскладе, кроме того случая, когда используется group by из пустой таблицы.
...
Рейтинг: 0 / 0
PIVOT не удается HELLP
    #39872756
Samat Samat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nullin, "Недопустимое имя столбца "dot"" ?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT C_Sale_Items, SUM([201812]) AS [201812], SUM([201901]) AS [201901], SUM([201902]) AS [201902]
FROM ( SELECT 100*YEAR(D_Date)+MONTH(D_Date) as [dot], C_Sale_Items, N_Amount FROM FD_Bills ) as s 
PIVOT (
SUM(N_Amount)
FOR 
     dot   IN ([201812], [201901], [201902])
) AS PV
WHERE dot = (SELECT 100*YEAR(D_Date)+MONTH(D_Date) FROM FD_Bills)
GROUP BY C_Sale_Items;
...
Рейтинг: 0 / 0
PIVOT не удается HELLP
    #39872820
nullin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Samat Samat, [dot] уже отпивочен. Лучше напишите скрипты создания таблиц, и тот результат на этих данных, который желаем и алгоритм - быстрее помогут.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / PIVOT не удается HELLP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]