SQL 多轴

SQL Multiple Pivot

我在 Microsoft SQL 服务器 (table A) 中设置了以下数据,并试图在 ID_1ID_2 两列上进行旋转。我可以在一列上旋转,但在串联列上旋转时遇到困难。任何帮助将不胜感激。

我有什么(table A):

Date     ID_1   ID_2    Value
1-Jan      1     a       77
1-Jan      1     b       113
1-Jan      1     c       212
2-Jan      1     a       159
2-Jan      1     b       85
2-Jan      1     c       46
3-Jan      1     a       300
3-Jan      1     b       456
3-Jan      1     c       100

我需要什么(table B):

Date    1_a 1_b 1_c
1-Jan   77  113 212
2-Jan   159 85  46
3-Jan   300 456 100

SQL Fiddle

查询 1:

DECLARE @Table TABLE ([Date] VARCHAR(10),ID_1 INT, ID_2 CHAR(1), Value INT)
INSERT INTO @Table VALUES 
('1-Jan',      1     ,'a',       77  ),
('1-Jan',      1     ,'b',       113),
('1-Jan',      1     ,'c',       212),
('2-Jan',      1     ,'a',       159),
('2-Jan',      1     ,'b',       85),
('2-Jan',      1     ,'c',       46),
('3-Jan',      1     ,'a',       300),
('3-Jan',      1     ,'b',       456),
('3-Jan',      1     ,'c',       100)


SELECT *
FROM (
SELECT [Date] 
     , CAST(ID_1 AS VARCHAR(10)) + '_' + ID_2  AS Cols
     , Value
FROM @Table)t
 PIVOT (SUM(Value)
        FOR Cols 
        IN([1_a],[1_b],[1_c])
        )p

Results:

|  Date | 1_a | 1_b | 1_c |
|-------|-----|-----|-----|
| 1-Jan |  77 | 113 | 212 |
| 2-Jan | 159 |  85 |  46 |
| 3-Jan | 300 | 456 | 100 |