我在Microsoft SQL Server(table A
)中有以下数据集,并尝试在ID_1
和ID_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
答案 0 :(得分:2)
查询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 |