小编典典

SQL Server PIVOT 创建所有 Null 值

sql

我有以下数据我正在尝试进行透视。我的目标是每个标签一行,每周变成一列,以速率作为一周的值。

Label Week Rate
51220 第 0 周 -11
51220 第 1 周 -41
51220 第 2 周 159
51220 第 3 周 117
51220 第 4 周 207
51220 第 5 周 -37
51220 第 6 周 138
51220 第 7 周 139
51220 第 8 周 -42
51220 第 9 周 -45
51220 第 10 周 -82
51220 第 11 周 -85
51220 第 12 周 -25
51347 第 0 周 23
51347 第 1 周 24
51347 第 2 周 25
51347 第 3 周 25
51347 第 4 周 25
51347 第 5 周 24
51347 第 6 周 24
51347 第 7 周 24
51347 第 8 周 24
51347 第 9 周 24
51347 第 10 周 24
51347 第 11 周 24
51347 第 12 周 23

这是我的查询:

SELECT * FROM table1
PIVOT (
SUM(Rate) FOR Week IN (Week0,Week1,Week2,Week3,Week4,Week5,Week6,Week7,Week8,Week9,Week10,Week11,Week12)
) pivot_table;

此结果始终为 NULL。我做错了什么?我正在关注几个教程但没有成功。

在一周的所有 13 列中使用 NULL 查询结果


阅读 238

收藏
2022-07-22

共1个答案

小编典典

是的,那些括号会做。

SELECT * 
FROM (VALUES('51220','Week 0',-11)
,('51220','Week 1',-41)
,('51347','Week 1', 24)
) table1(Label, Week, Rate)
PIVOT (SUM(rate) FOR WEEK IN ([Week 0],[Week 1])) AS pivot_table
2022-07-22