我是Pivots的新手,所以我不确定我该怎么做才能做到这一点。
我有以下数据:
我需要转动/取消上述数据。
我需要以下列:
我试过开发代码,但我担心我做错了:
select
*
from
(
select
*
from Budgets
) x
unpivot
(
GLLink for Budget in ([AccType])
) p
order by GLLink, Budget
我需要的结果应如下所示:
假设您向我们展示的数据位于名为“yourtable”的表中,这里是cross apply
方式:
select t.GLLink,t.Acctype,u.*
from yourtable t
cross apply
(
values
('Budget01',Budget01),
('Budget02',Budget02),
('Budget03',Budget03),
('Budget04',Budget04),
('Budget05',Budget05),
('Budget06',Budget06),
('Budget07',Budget07)
)u(Budget,[Budget Value])
它的工作方式:cross apply
每次“看到”一行。对于此行,它使用values()
运算符创建表,因此我们根据您的需要创建对。最后,我们给这个表命名(u for unpivoted),并命名列。
将列转换为行是univoting(您需要的),旋转是相反的。