Я использую ms-access и у меня есть 2 таблицы tblAssets и tblauditlog. Я пытаюсь получить последний журнал аудита всех активов, у которых состояние активов = 6, что означает, что они были проданы. Отношения между этими двумя таблицами: tblassets.assetid = tblauditlog.logaspectid. Я только получил все журналы аудита для активов, которые были проданы, но я ищу последнюю запись. У меня есть поле даты, но когда я использую Max (tblauditlog.logtimestamp), он выдает ошибку
Я пытался использовать
SELECT <br>
r.assetid, <br>
r.assetcategory, <br>
r.assetstatus, <br>
sub2.logmessage, <br>
sub2.logtimestamp <br>
FROM <br>
tblAssets as r <br>
LEFT JOIN <br> <br>
(SELECT <br>
sub1.logaspectid, <br>
a2.logMessage, <br>
a2.logtimestamp <br>
FROM <br>
( <br>
SELECT <br>
a1.logaspectid, <br>
Max(a1,logtimestamp) AS MaxOfTimeStamp <br>
FROM tblauditlog AS a1 <br>
GROUP BY a1.logaspectid ) AS sub1 <br>
INNER JOIN tblauditlog as a2 <br>
ON <br>
(sub1.MaxOfTimeStamp = a2.logTimestamp) AND (sub1.logaspectid = a2.logaspectid)) AS sub2 <br>
ON r.assetid = sub2.logaspectid ;
Выше выдает ошибку:
Невозможно выполнить запрос. Неверная операция или синтаксис с использованием нескольких значений
поле
Это то, что я возвращаю несколько записей
SELECT tblAssets.assetID, tblAssets.assetCategory, tblAssets.assetModel,
tblAssets.assetStatus, tblAuditLog.logAspectID, tblAuditLog.logMessage,
tblAuditLog.logTimeStamp
FROM tblAssets
LEFT JOIN tblAuditLog ON tblAssets.assetID = tblAuditLog.logAspectID
WHERE (((tblAssets.assetStatus)=6)
AND ((tblAuditLog.logTimeStamp)>=#1/1/2017#));
Я просто хочу, чтобы последний зарегистрированный журнал для всего актива = 6 был продан.