unpivot,pivot联合使用示例

来源:互联网 发布:caffe框架 编辑:程序博客网 时间:2024/05/16 04:51

类别 上期结转数 本期新增数 应办结数 办结数 本期结转数 办结率
收文     1             43           44   8          36           18.18%
发文     3             28           31   4     27           12.90%
合计     4             71           75   12     63           16%


变成:

类别         收文 发文 合计
上期结转数 1 3   4
本期新增数 43 28 71
应办结数         44 31 75
办结数         8 4 12
本期结转数 36 27 63
办结率         18.18%  12.90% 16%

 

--> 生成测试数据表: @T

DECLARE @T TABLE (类别 VARCHAR(4),上期结转数 INT,本期新增数 INT,应办结数 INT,办结数 INT,本期结转数 INT,办结率 INT)

INSERT INTO @T

SELECT '收文',1,43,44,8,36,18.18 UNION ALL

SELECT '发文',3,28,31,4,27,12.90 UNION ALL

SELECT '合计',4,71,75,12,63,16

 

-->SQL查询如下:

 

SELECT *

FROM @T AS A

    UNPIVOT(数值 FOR 类型 IN([上期结转数],[本期新增数],[应办结数],

                               [办结数],[本期结转数],[办结率])) AS B

    PIVOT(MAX(数值) FOR 类别 IN([收文],[发文],[合计])) AS C;

/*

类型   收文         发文         合计

----------  ----------- ----------- -----------

办结率 18          12          16

办结数 8           4           12

本期结转数 36          27          63

本期新增数 43          28          71

上期结转数 1           3           4

应办结数   44          31          75

 

(6 行受影响)

*/

 

 

 

 

原创粉丝点击