В T-SQL я пытаюсь преобразовать значения некоторых строк в столбцы.
Исходная таблица:
Project | Machine | Value
-------------------------
A X 100
A Y 99
A Z 98
A W 97
B X 97
B Y 96
B W 95
C X 95
C Z 94
Результат, который я хотел бы получить:
Project MX MY MZ MW
-----------------------------
A 100 99 98 97
B 97 96 0 95
C 95 0 94 0
Я создал тестовый код:
CREATE TABLE Company (project char(1), machine char(1), cost int)
GO
INSERT INTO Company
VALUES ('A', 'X', 100), ('A', 'Y', 99), ('A', 'Z', 98),
('A', 'W', 97), ('B', 'X', 97), ('B', 'Y', 96),
('B', 'W', 95), ('C', 'X', 95), ('C', 'Z', 94);
Мой сводный запрос:
SELECT
project, 'X', 'Y', 'Z', 'W'
FROM
(SELECT
project, machine, cost
FROM
Company) p
PIVOT
(MAX(cost)
FOR machine IN ('X', 'Y', 'Z', 'W') AS pvt
Я получаю эту ошибку:
Неверный синтаксис рядом с ''X' '
Мой сводный запрос неверен?
Заранее спасибо