Сводная таблица и группа по - PullRequest
0 голосов
/ 20 мая 2019

Я использую этот запрос для получения продаж за предыдущие 12 месяцев.

SELECT *
FROM (SELECT
    gp_etablissement [ETABLISSEMENT],
    datename(month, dateadd(m,-1,getdate())) [Month], 
    COUNT(1) [Sales Count]
    FROM PIECE
    GROUP BY gp_etablissement,
    datename(month, dateadd(m,-1,getdate()))) AS MontlySalesData
PIVOT( SUM([Sales Count])   
    FOR Month IN ([January],[February],[March],[April],[May],
    [June],[July],[August],[September],[October],[November],
    [December])) AS MNamePivot

Я получил эту ошибку:

Каждое выражение GROUP BY должно содержать хотя бы один столбец, который не является внешняя ссылка.

Я изменил много столбцов в группе, но та же проблема.

1 Ответ

0 голосов
/ 20 мая 2019

Используйте приведенный ниже код для устранения ошибки. Сводка не работает с подзапросом таким образом, когда группа использует части даты.

;WITH CTE
AS
(
SELECT
    gp_etablissement [ETABLISSEMENT],
    datename(month, dateadd(m,-1,getdate())) [Month], 
    COUNT(1) [Sales Count]
    FROM PIECE
    GROUP BY gp_etablissement,
    datename(month, dateadd(m,-1,getdate())) 
)
SELECT *
FROM CTE
PIVOT( SUM([Sales Count])   
    FOR Month IN ([January],[February],[March],[April],[May],
    [June],[July],[August],[September],[October],[November],
    [December])) AS MNamePivot
...