У меня есть запрос SQL, который выводит сводку.
Я пытаюсь добавить функцию CONCAT
к pivot
, но получаю следующую ошибку:
'CONCAT' не является распознанной агрегатной функцией.
Мой текущий код (который выдает ошибку):
SELECT * FROM (
SELECT dateadd(minute,(datediff(minute,0,Time)/15)*15,0) Time, AREA, COUNT(BLOB) BLOBs, CARS
FROM
(SELECT BLOB, Time, CARS, DRIVER, [MK], AREA, Tier FROM (
SELECT [BLOB Nbr] BLOB, Time, CARS, [From PT], [To PT], [From PN], [To PN], DRIVER, [MK],
CASE AREA
WHEN '01' THEN '02' WHEN '03' THEN '02'
WHEN '05' THEN '06' WHEN '07' THEN '06'
WHEN '09' THEN '10' WHEN '11' THEN '10'
ELSE AREA END AREA,
Position, Tier
FROM (
SELECT [BLOB Nbr], T_IME Time, [C NAME] CARS, [From PT], [To PT], [From PN], [To PN], [C V] DRIVER, [MK],
CASE WHEN [From PT] = 'DRIVER' THEN LEFT(RIGHT([From PN],6),2) ELSE LEFT(RIGHT([To PN],6),2) END AREA,
CASE WHEN [From PT] = 'DRIVER' THEN LEFT(RIGHT([From PN],4),2) ELSE LEFT(RIGHT([To PN],4),2) END Position,
CASE WHEN [From PT] = 'DRIVER' THEN RIGHT([From PN],2) ELSE RIGHT([To PN],2) END Tier
FROM mytable c
WHERE ([From PT] = 'DRIVER' OR [To PT] = 'DRIVER')
) a ) b ) c
GROUP BY dateadd(minute,(datediff(minute,0,Time)/15)*15,0), AREA, CARS) src pivot(CONCAT(sum(BLOBs),CARs) for AREA in ([02],[06],[10])) piv;
Если я изменю свою вторую строку на (Удаление CARs
):
SELECT dateadd(minute,(datediff(minute,0,Time)/15)*15,0) Time, AREA, COUNT(BLOB) BLOBs
И если я изменю свой GROUP BY
на (Удаление CARs
и CONCAT
функция):
GROUP BY dateadd(minute,(datediff(minute,0,Time)/15)*15,0), AREA) src pivot(sum(BLOBs) for AREA in ([02],[06],[10])) piv;
Это работает, но ятребуется объединение результатов.
Текущий рабочий вывод:
Time 02 06 10
2018-05-07 16:00:00.000 11 NULL NULL
2018-05-07 16:15:00.000 2 7 NULL
2018-05-07 16:30:00.000 NULL 8 NULL
2018-05-07 16:45:00.000 9 NULL NULL
2018-05-07 17:00:00.000 9 NULL 8
Ожидаемый вывод (с CONCAT
):
Time 02 06 10
2018-05-07 16:00:00.000 BMW11 NULL NULL
2018-05-07 16:15:00.000 BMW2 KIA7 NULL
2018-05-07 16:30:00.000 NULL KIA8 NULL
2018-05-07 16:45:00.000 BMW9 NULL NULL
2018-05-07 17:00:00.000 BMW9 NULL FIAT8
Пример данных из запроса,без PIVOT
:
Time AREA BLOBs CARs
2018-05-07 16:00:00.000 02 11 BMW
2018-05-07 16:15:00.000 02 2 BMW
2018-05-07 16:15:00.000 06 7 KIA
2018-05-07 16:30:00.000 06 8 KIA
2018-05-07 16:45:00.000 02 9 BMW
2018-05-07 17:00:00.000 02 9 BMW
2018-05-07 17:00:00.000 10 8 FIAT
Необработанные данные выборки из таблицы: