数据透视表 - 使用多列
Pivot Tables - using more than one column
使用数据透视表是否可以将您的列基于两个值(在我的示例中 'code' 和 'val')?看起来你不能,但这对我来说似乎有点限制,所以也许我只是误解了一些东西。例如,如果我的数据 table 如下所示:
代码总计
---- --- -----
SI 12 90
SI 12 30
SI 24 240
CI 12 210
我想要的输出是这样的:
SI12 SI24 CI12
---- ---- ----
120 240 210
如果有人能告诉我如何实现这一点,无论解决方案是使用数据透视表还是其他方法,我将不胜感激?
试试这个,
DECLARE @mytable TABLE
(
code VARCHAR(2),
val INT,
total INT
)
INSERT INTO @mytable
VALUES ('SI',
12,
90),
('SI',
12,
30),
('SI',
24,
240),
('CI',
12,
210)
SELECT *
FROM @mytable
SELECT *
FROM (SELECT code + CONVERT(VARCHAR(2), VAL) VAL,
total
FROM @mytable) T
PIVOT(sum(total)
FOR VAL IN ([SI12],
[SI24],
[CI12])) AS PIVOTTABLE
使用数据透视表是否可以将您的列基于两个值(在我的示例中 'code' 和 'val')?看起来你不能,但这对我来说似乎有点限制,所以也许我只是误解了一些东西。例如,如果我的数据 table 如下所示:
代码总计
---- --- -----
SI 12 90
SI 12 30
SI 24 240
CI 12 210
我想要的输出是这样的:
SI12 SI24 CI12
---- ---- ----
120 240 210
如果有人能告诉我如何实现这一点,无论解决方案是使用数据透视表还是其他方法,我将不胜感激?
试试这个,
DECLARE @mytable TABLE
(
code VARCHAR(2),
val INT,
total INT
)
INSERT INTO @mytable
VALUES ('SI',
12,
90),
('SI',
12,
30),
('SI',
24,
240),
('CI',
12,
210)
SELECT *
FROM @mytable
SELECT *
FROM (SELECT code + CONVERT(VARCHAR(2), VAL) VAL,
total
FROM @mytable) T
PIVOT(sum(total)
FOR VAL IN ([SI12],
[SI24],
[CI12])) AS PIVOTTABLE