Как бы я снова развернул эту таблицу, чтобы учесть разницу в именах?
Что у меня так далеко:
CREATE TABLE Temp
(
badge nvarchar(4)
,name nvarchar(31)
,Job nvarchar(4)
,KDA float
,Match int
)
INSERT INTO Temp
VALUES ('T996', 'Darrien', 'AP', 1.0, 20),
('T996', 'Mark', 'ADC', 2.8, 16),
('T996', 'Kevin', 'TOP', 5.0, 120)
SELECT badge, [AP_KDA], [AP_Match], [ADC_KDA], [ADC_Match], [TOP_KDA], [TOP_Match], [Person]
FROM (
SELECT badge, Col, Val
FROM (
SELECT badge, Job + '_KDA' AS Col, CAST(KDA AS nvarchar(31)) AS Val
FROM Temp
UNION ALL
SELECT badge, Job + '_Match' AS Col, CAST(Match AS nvarchar(31)) AS Val
FROM Temp
UNION ALL
SELECT badge, 'Person' AS Col, name AS Val
FROM Temp
) AS t
) AS tt
PIVOT (MIN(Val) FOR Col IN ([AP_KDA], [AP_Match], [ADC_KDA], [ADC_Match], [TOP_KDA], [TOP_Match], [Person])
) AS pvt
Какие выходы:
badge AP_KDA AP_Match ADC_KDA ADC_Match TOP_KDA TOP_Match Person
1 T996 1 20 2.8 16 5 120 Darrien
Я бы хотел, чтобы он был отформатирован как:
badge AP_KDA AP_Match ADC_KDA ADC_Match TOP_KDA TOP_Match Person1 Person2 Person3
1 T996 1 20 2.8 16 5 120 Darrien Mark Kevin
Я верю, что я близок, но последний Пивот сбивает меня с толку.
Любая помощь будет оценена.
Спасибо!