SQL Server中的多个列上的数据透视表

时间:2017-02-04 09:55:04

标签: sql sql-server

我有一个显示此类数据的表

Data in Table

我需要这种格式的数据

              GIN      APINV        AR Rec       Requisitions
Total         8          11           77
Pending       7           6           77
New           1          77           0
Approved      0           5           0
Rejected      1           0           0

等等......

我已经知道的是我必须使用PIVOT,但我只使用一列来使用PIVOT

1 个答案:

答案 0 :(得分:0)

CROSS APPLYPIVOT的组合应该:

select *
from (
    select t.appname, x.status, x.val
    from your_table t
    cross apply (
        values 
            ('Total', t.total),
            ('Pending', t.pending),
            ('New', t.New),
            ('Approved', t.Approved),
            ('Rejected', t.Rejected)
    ) x (status, val)
) t pivot (
    sum(val) 
    for appname in (
        [GIN],[APINV],....
    )
);