【发布时间】:2019-05-20 13:24:02
【问题描述】:
我正在使用此查询来获取前 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 表达式必须至少包含一列 外部参考。
我已经更改了 group by 中的许多列,但同样的问题。
【问题讨论】:
-
您的查询没有意义。您为什么按当前月份分组,然后期望取消该值。根据当前月份,您只会得到一列的值。
-
我想获得过去 12 个月的值,我想用他的名字重命名每一列(月)。例如:[Month - 1] 必须:4 月。
-
这就是样本数据和所需结果很有帮助的原因。
标签: sql sql-server tsql pivot