Я пытаюсь получить этот запрос для истории устройства, чтобы заполнить идентификатор местоположения этого устройства его последним записанным местоположением, и у меня возникают проблемы с выяснением, как заставить это работать таким образом.
Начальный результат
Желаемый результат
Идея в том случае, если нет записи об установке или удалении, местоположение будет таким же, как и в последней записи для этого устройства. Снимки экрана выше сделаны до того, как вы попытались это сделать.
SELECT
ns.online,
n.[node serial number],
ns.gateway,
ns.[date verified],
nls.[location id],
IIF (ISNULL(nls.[location id]),"null",nls.[location id]) AS [location status],
nls.[install/remove],
nls.[date of action],
tbm.[TBM-R],
tbm.[TBM-L],
ns.notes
FROM
(
(nodes AS n INNER JOIN
[node status] AS ns ON n.nodeid = ns.[node serial]) LEFT JOIN
[node location status] AS nls ON (ns.[node serial] = nls.[node serial number]) AND
(ns.[date verified] = nls.[date of action])) LEFT JOIN
[TBM Station] AS tbm ON ns.[Date Verified] = tbm.[Date Reported]
WHERE
n.[node serial number]=[Enter node serial number]
ORDER BY
[date verified] DESC
Текущий результат
Итак, как вы можете видеть Мне удалось вставить «пустое» значение в пустую ячейку, что является шагом вперед, но я застрял, пытаясь выяснить, как заставить его вместо этого отображать последний записанный идентификатор местоположения.
12 и 13 относятся к идентификатору записи правильного идентификатора местоположения в таблице местоположений (на которую нет прямой ссылки в запросе, но на которую указывает таблица [node location status]
через раскрывающийся список). Я не уверен, почему это происходит, и к этому нужно будет обратиться, но по крайней мере я вижу пустую ячейку, заполненную в этот момент.