sql-server - 尝试创建 PIVOT 表时,我在 SQL 中收到无效标识符错误
问题描述
SELECT ProdName, Sales,
1 AS January, 2 AS February, 3 AS March, 4 AS April, 5 AS May, 6 AS June,
7 AS July, 8 AS August, 9 AS September, 10 AS October,
11 AS November, 12 AS December
FROM
(SELECT actsales as Sales , EXTRACT (month from factdate) as Month, ProdName
FROM factcoffee, prodcoffee
WHERE factcoffee.ProductId = prodcoffee.productid)
PIVOT
(
SUM (Sales)
FOR Month IN
( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 )
);
我在第 1 行得到了 Sales 的错误。如果我只从第 1 行删除销售额,我会根据需要将产品的数据透视表作为行,将月份作为列,但值不是销售额,而只是 1一月专栏,二月专栏2,依此类推。如果我在第 1 行执行 SELECT *,我会按月获得每种产品的正确销售价值。但列名显然不是月份名称,只是 1,2,......
解决方案
您的查询很好,但请尝试使其更具可读性
SELECT ProdName
, Sales
,[1] AS January
,[2] AS February
,[3] AS March
,[4] AS April
,[5] AS May
,[6] AS June
,[7] AS July
,[8] AS August
,[9] AS September
,[10] AS October
,[11] AS November
,[12] AS December
FROM
(SELECT actsales as Sales , EXTRACT (month from factdate) as Month,
ProdName
FROM factcoffee, prodcoffee
WHERE factcoffee.ProductId = prodcoffee.productid)
PIVOT
(
SUM (Sales)
FOR Month IN
( [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] )
) as PVT;
不要忘记将枢轴重命名为 PVT 或其他名称。有时代码会因为这样做或忘记括号而失败。
此外,如果您可以尝试使用 join 而不是FROM factcoffee, prodcoffee.
它更具可读性
推荐阅读
- function - Mathematica - How do I show of intersections of two functions on plot?
- javascript - Slick Slider 延迟加载问题
- javascript - 如何将唯一 ID 保存为 Firebase 中图像的名称?
- python - Python NLTK 提取包含关键字的句子
- javascript - 如何将参数添加到 JS 中的仅路径 url?
- django - 如何测试我的 django/react 应用程序的前端?
- java - 字符串数组 - 不必要的同步?
- javascript - 如何播放仅音频 MediaRecorder 的单个块
- flutter - 为什么 sliverlist 在我的海关滚动视图中不起作用?
- javascript - 获取 TypeError: undefined is not an object for navigation.nagivate