ник: dmsrv803
Есть запрос Query1:
SELECT Dogovor.Dogovor_Id, Status_Id, DateStatusChanged FROM Dogovor INNER JOIN Status ON Dogovor.Dogovor_Id = Status.Dogovor_Id ORDER BY DateStatusChanged;
Данный запрос возвращает набор данных, который содержит информацию о статусе договоров. Причем, если договор имееет несколько статусов, то последним в наборе оказывается статус, имееющий наибольшее значение в поле DateStatusChanged.
Дальше мне необходимо с помощью другого запроса получить последний (действующий) статус договора. Т.е. найти статус договора с наибольшим значением поля DateStatusChanged.
SELECT Dogovor_Id, Last(Status_ID) As LastStatus_Id, Last(DataStatusChanged) As LastData FROM Query1 GROUP BY Dogovor_Id;
Но к моему огорчению запрос отрабатывает не корректно. До тех пор, пока наибольшему значению поля Status_Id соответствует поле DataStatusChanged с наибольшем значением - все в порядке, но как только например изменить дату статуса таким образом, что она станет меньше даты предыдущего статуса, то запрос возвращает дату одного статуса и Id другого.
Подскажите, как мне составит ь запрос, чтобы он отрабатывал корректно?