类别 上期结转数 本期新增数 应办结数 办结数 本期结转数 办结率
收文 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;