sql-server - 如何在sql中使用pivot将两行转换为一列
问题描述
我想使用数据库中的PIVOT FUNCTION将两列转换为一行SQL
。但我面临着问题。我可以将 1 列转换为 1 行,但不能将 2 列转换为 1 行。
解决方案
你可以试试这个
Create Table Article (ArticleId Int, [Description] Varchar(10))
Insert Into Article Values (1, 'Test')
Create Table OrderForecast(ArticleId Int, [Week] Int, [Order] Int, Amount Int)
Insert Into OrderForecast Values (1, 51, 1, 0),(1, 52, 2, 150), (1, 1, 3, 0),(1, 2, 4, 200), (1, 3, 5,0)
Select ArticleId, [Description], Week51, Week52, Week1, Week2, Week3
from
(
select ArticleId, [Description], Amount, [Week]
from
(
SELECT OrderForecast.ArticleId, 'Week' + Convert(Varchar(10), OrderForecast.[Week]) as [Week], [Order], Amount,
Article.[Description] as [Description] FROM OrderForecast
Inner Join Article On OrderForecast.ArticleId = Article.ArticleId
)a
) d
pivot
(
max(Amount)
for [Week] in (Week51, Week52, Week1, Week2, Week3)
) piv;
你可以在这里找到演示
推荐阅读
- android - 如何在嵌套 Recyler 视图中使用 Kotlin 高阶函数
- swift - 如何将文本文件保存到云文件夹(MacOS Swift 应用程序)?
- c++ - 如何在 MySQL UDF 函数中采用 Blob 类型参数?
- javascript - 调用函数或编译函数时是否在函数内部进行了提升?
- javascript - Jest 测试中 setTimeout 和 Promise 的奇怪行为
- virtual-machine - 什么是vmotion?
- python - Pandas:如何获取除与给定列表匹配的列名之外的列名
- ios - main.jsbundle 未更新
- c++ - 如何在 C++ 11 中传递智能指针而不是“this”?
- python - Pandas 的 read_html 函数在从 gmail 消息中解析时显示缺失和不完整的表格