sql - 数据透视表和分组依据
问题描述
我正在使用此查询来获取前 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 中的许多列,但同样的问题。
解决方案
使用以下代码消除错误。当 group by 使用日期部分时,枢轴不适用于子查询。
;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
推荐阅读
- google-app-maker - Stage vs Prod:将电子表格数据导入生产部署
- git - 分离的 HEAD 不会重新连接到任何东西
- scala - 如何为返回 EitherT[Future,Failure,Result] 的函数调用 Await.ready
- php - 有没有办法从 php 数组中检索数据?
- java - 在Java中的String数组中查找String的索引
- azure - 引用另一个 AD 应用程序的 Azure AD B2C 问题:选择 API 下拉菜单始终为空
- python - 如何使用正则表达式查找两个值之间的任何内容?
- java - 自动生成替换方法
- android - 如何更正“com.google.android.gms.common.api.ApiException: 10:”
- javascript - 不同窗口高度上的 ScrollMagic 偏移