sql-server - SQL转置数据

标签 sql-server pivot

我有一个名为 Forecast 的表,如下所示:

enter image description here

Product_BK 有大约 80,000 条记录,而月份有 12 条记录。各州保持不变,为 5 条。

如何编写查询来将数据转置为如下所示:

enter image description here

这是在 SQL 服务器上,不喜欢走动态查询路线。

感谢您的所有投入

最佳答案

您可以使用 SQL Server 的内置 UNPIVOT功能:

SELECT PRODUCT_BK, Month, State, Forecast
FROM
(SELECT * FROM Forecast_Table) t
UNPIVOT
(Forecast FOR State IN (SA_NT, QLD, VIC_TAS, WA, NSW_ACT)) AS fcst

关于sql-server - SQL转置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40478749/

相关文章:

发送给最终用户的 SQL : pros and cons

sql-server - 将数据从 Lotus Notes 复制到 MSSql

MySQL查询同一列的多条数据

sql - 从原始表创建新的表结构

java - Devexpress ASPX PivotTable/Gride 之类的控件是否可用于 Java webapp?

SQL : counting and grouping by on the same column with conditions

c# - SQL Server 用户登录

sql-server - 如何查询 SQL Server 数据库中的完整表名列表

mysql - 在 MySQL 中进行透视时如何生成没有零值字段的单行结果集

sql - SQL 复杂数据透视表