将2个列中的值转换为行T-SQL

时间:2017-05-06 14:21:52

标签: sql-server excel tsql

我有一个问题,我无法解决。

我有一张这样的表

table1

我希望输出像这样(不是这样,看看修改后的结果图像):

result

这可以用T-SQL吗?也许用Excel?

共有140个类别。 60.000行。

编辑:

只是澄清一下。我想要每个类别列的金额列。因此,如果有140个类别,我想要140个数量的列。如果给定类别没有金额,它只会为null或amount = 0。

EDIT2: 修改结果: revised

1 个答案:

答案 0 :(得分:0)

您可以使用数据透视和动态查询生成列。我只是提供了一个包含2个类别的示例,您可以使用表格生成完整列表

select * from #yourcustomer
pivot (sum(amount) for category_name in ([cat1],[cat2] --,all categories list generated based on yourtable..........
)) p