SQL-сводный запрос возвращает null в некоторых столбцах

58
8

У меня есть следующий запрос, который возвращает номер регистра автомобиля вместе с датой его просмотра и местоположением:

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"

спросил(а) 2014-05-14T15:15:00+04:00 6 лет, 4 месяца назад
1
Решение
57

Попытка построить скрипты для проверки вашего примера (что было бы полезно, если бы вы это предоставили), ответ стал очевидным.

Вы выбираете ANPR_CAMERA.Name в своем первом SQL и ANPR_CAMERA_GROUP.Name в сводном SQL.

ответил(а) 2014-06-05T10:02:00+04:00 6 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема