unpivot,pivot联合使用示例

类别 上期结转数 本期新增数 应办结数 办结数 本期结转数 办结率
收文 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(data
FOR [desc] IN([上期结转数],[本期新增数],[应办结数],
[办结数],[本期结转数],[办结率])) AS unpvt
PIVOT(
MAX(data) FOR 类别 IN([收文],[发文],[合计])) AS pvt;

你可能感兴趣的:(sql)