我想做的是添加一个
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
汽车
海螺
功能):
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
):
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