枢轴/取消枢轴以下数据

时间:2018-12-13 07:53:50

标签: sql-server tsql

我是Pivots的新手,所以我不确定我该怎么做。

我有以下数据:

Budgets

我需要透视/取消透视以上数据。

我需要以下列:

  1. GLLink
  2. AccType
  3. 预算
  4. 预算值

我尝试开发代码,但是恐怕我做错了:

select
*
from
(
select
*
from    Budgets
)   x
unpivot
(
GLLink for Budget in ([AccType])
)   p
order by GLLink, Budget

我需要的结果应如下所示:

enter image description here


1 个答案:

答案 0 :(得分:4)

假设您显示给我们的数据在一个名为“ yourtable”的表中,这就是DeltaDays的方式:

table

工作方式: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]) 运算符创建一个表,因此我们将在需要时进行配对。最后,我们给该表命名(u表示未透视表),并命名列。

将列转换为行是不可透视的(所需),而旋转则是相反的。