数据透视表 - 使用多列

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