У меня есть следующий код, который возвращает повернута таблицу текущих заданий и их estiamted раз:Соединить выход сводной таблицы
DECLARE @cols AS NVARCHAR(MAX);
DECLARE @query AS NVARCHAR(MAX);
select @cols = STUFF((SELECT distinct ',' +
QUOTENAME(Name)
FROM JobPhases
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
, 1, 1, '');
SELECT @query = 'SELECT *
FROM
(
SELECT c.Registration as ''Reg.'', p.Name, [x] = j.EstimatedTime
FROM JobDetails AS j
INNER JOIN JobPhases p ON p.ID = j.PhaseId
INNER JOIN Jobs job on job.ID = j.JobID
INNER JOIN Cars c on job.CarID = c.ID
WHERE job.Status = 1 or job.Status = 0
) JobDetails
PIVOT
( SUM(x)
FOR Name IN (' + @cols + ')
) pvt'
execute(@query);
Выход:
JobID | Repair & Reshape | Refit Stripped Parts | Polishing
1000 | 2.00 | 1.00 | 1.30
1001 | 2.30 | 0.30 | 2.00
Что мне нужно, чтобы сцепить j.ActualTime
в отображаемое значение. Любые идеи, как я могу это сделать? Таким образом, конечный результат будет - 4.00/5.30
(где 4.00 - j.EstimatedTime
и 5.30 - j.ActualTime
).
Приветствия
Это выглядит, как он может работать, но я получаю сообщение об ошибке «Тип Операнда данных VARCHAR (макс) недопустимо для оператора суммы.» Очевидно, это относится к строкам 5 и 6, неспособным преобразовать сумму в varchar, но я не могу решить решение? Приветствия – dynamicuser
@MattBaughan Мой плохой. SUM не работает с типами символов, но MAX должен. Дайте мне знать, если это сработает для вас. –