【发布时间】:2015-05-08 20:55:00
【问题描述】:
我有table a
Name District Source Revenue
Dave 34 A 120
John 36 B 140
Juyt 38 C 170
还有table b
Name District Product Cost
Dave 34 A 50
John 36 B 40
我想要这样的视图。下面是所需的视图。
Name District Source Revenue A B Total Cost
Dave 34 A 120 50 0 50
John 36 B 140 0 40 40
Juyt 38 C 170 0 0 0
表 b 中每次查找的产品数量不固定。当您的产品 A、产品 B 等产品的数量不固定时,有没有办法取消透视。我不想做动态 SQL 和动态 unpivot。是否有任何其他选项可以获得所需的视图?
【问题讨论】:
-
您问:“是否有任何其他选项可以获得所需的视图?”不可以。当数据透视表中的列数不确定时,动态 SQL 是唯一的选择。
-
您基本上是在询问是否有一种方法可以在不单独命名列的情况下执行数据透视,也不使用动态 SQL 这样做。 我同意你的愿望,真的希望有更好的选择,但不幸的是,之前有人问过这个问题并在这里回答:stackoverflow.com/questions/2170058/…
-
"有没有办法在不使用动态 SQL 的情况下取消透视一组动态类别?" 是的。但不是 T-SQL。 Excel(和其他工具)可以很好地做到这一点。如果你想在 SQL Server 上做,那么正如其他人所说,你需要动态 SQL。
-
是的,OLAP 数据库(如 SQL Server Analysis Services)专门使用不同的方法进行分组和透视。如果您要做很多此类事情,它们是很好的,但对于一次性查询来说就太过分了。
-
为什么要在使用左连接和派生表@Ssis Magician 2014 实现这一目标时进行反透视
标签: sql sql-server