SQL 列名是一个数据并且反透视不起作用
Posted
技术标签:
【中文标题】SQL 列名是一个数据并且反透视不起作用【英文标题】:SQL Column name is a data and unpivoting not working 【发布时间】:2021-03-26 05:58:42 【问题描述】:首先感谢您的帮助!我尝试了 5 个多小时,但无法修复它..
我在下面有这张表:
有 57 个日期列.. 我的预期结果是(只需转置数据列,以便我可以在 PBI 中正确运行 Dax 公式 :))
所以,我做了这个 Unpivot:
SELECT [Provincias], [Paises], [Latitude], [Longitude], [DATE], [VALUE]
FROM
(SELECT [Province State], [Country Region], Lat, Long, 30/1/2020, 31/1/2020, 1/2/2020, 2/2/2020, ...LOT OF DATES....
FROM [data_time_series_19-covid-Confirmed]) PT
UNPIVOT
(Dias FOR ds IN
( 30/1/2020, 31/1/2020, 1/2/2020, 2/2/2020.... LOT OF DATES....)
)AS unpvt
我尝试了 [日期],但效果不佳..
上面写着:'30' 附近的 Synthax 不正确..
如果是日期名称,SQL 似乎找不到列名称。它非常适合第 3 行,但在第 7 行中不起作用(尴尬 o.O)
但是当我输入时:
从 [data_time_series_19-covid-Confirmed] 中选择 [22/1/2020]
它工作正常!
谢谢
【问题讨论】:
什么是 dbms(例如 mysql、Oracle),这一点很重要,它会影响可用的解决方案。看起来像 TSQL 请只选择相关标签 ***.com/questions/13372276/… 可能对你有帮助 您没有回答自己的问题吗?您说,当您运行“从 [data_time_series_19-covid-Confirmed] 中选择 [22/1/2020]”时,它可以工作(并且在该查询中,列名周围有方括号),但在非透视查询中,您没有有方括号中的列名.....我有点困惑...... PaulMaxwell,我正在使用 SQL SERVER Bhaskar,谢谢,但没有解决 Craig,不,它不起作用.. 当我放入方括号时,它在 unpivot 中找不到列代码。仅在我使用“从”中选择 [数据] 时才有效。非常令人困惑 【参考方案1】:认为您需要将这些日期引用放在方括号之间
SELECT [Provincias], [Paises], [Latitude], [Longitude], [DATE], [VALUE]
FROM
(SELECT [Province State], [Country Region], Lat, Long, [30/1/2020], [31/1/2020], [1/2/2020], [2/2/2020]
FROM [data_time_series_19-covid-Confirmed]) PT
UNPIVOT
(Dias FOR ds IN
( [30/1/2020], [31/1/2020], [1/2/2020], [2/2/2020])
)AS unpvt
【讨论】:
以上是关于SQL 列名是一个数据并且反透视不起作用的主要内容,如果未能解决你的问题,请参考以下文章