SQL-сводный запрос возвращает null в некоторых столбцах
У меня есть следующий запрос, который возвращает номер регистра автомобиля вместе с датой его просмотра и местоположением:
SELECT PLATE_READ.RegNumber, PLATE_READ.DateSeen, ANPR_CAMERA.Name FROM PLATE_READ
REG DATESEEN LOCATION
=== ======== ========
5897HHS 20/12/2013 12:10:57 GIB EXIT
5897HHS 20/12/2013 12:05:03 AIRPORT BARRIER
Вместо того, чтобы иметь три строки, я хотел бы иметь возможность запрашивать и иметь 1 строку, возвращенную на регистрационный номер, с указанием дат, которые он видел для каждого местоположения, в следующем формате:
REG GIB EXIT AIRPORT BARRIER
=== ============= ==============
5897HHS 20/12/2013 12:10:57 20/12/2013 12:05:03
Это то, что у меня есть до сих пор:
SELECT *
FROM
(SELECT TOP(100) PLATE_READ.DateSeen,
PLATE_READ.RegNumber,
ANPR_CAMERA_GROUP.Name
FROM ANPR_CAMERA
INNER JOIN ANPR_CAMERA_GROUP
ON ANPR_CAMERA.Id = ANPR_CAMERA_GROUP.Id
INNER JOIN ANPR_CAMERA_IN_GROUP
ON ANPR_CAMERA.Id = ANPR_CAMERA_IN_GROUP.ANPRCameraId
AND ANPR_CAMERA_GROUP.Id = ANPR_CAMERA_IN_GROUP.ANPRCameraGroupId
INNER JOIN PLATE_READ
ON ANPR_CAMERA.Id = PLATE_READ.CameraId
ORDER BY PLATE_READ.DateSeen DESC
) x pivot ( MAX(DateSeen) FOR Name IN ([GIB EXIT], [AIRPORT BARRIER]) )p
Однако это всегда возвращает значение NULL для записи "GIB EXIT"
Попытка построить скрипты для проверки вашего примера (что было бы полезно, если бы вы это предоставили), ответ стал очевидным.
Вы выбираете ANPR_CAMERA.Name в своем первом SQL и ANPR_CAMERA_GROUP.Name в сводном SQL.