SQL, чтобы выбрать максимальную дату из таблицы только с 1 датой - PullRequest
0 голосов
/ 08 июня 2018

У меня есть следующий код SQL:

SELECT MH.[PM#], 
       MH.[Work Done], 
       MH.[Date Done], 
       MH.Comments, 
       MH.[SEM Completed by]
 FROM [Maintenance History tbl] AS MH
WHERE (((MH.[Work Done])="LT") 
  AND ((MH.[Date Done]) =
        ( SELECT Max(MH2.[Date Done])
            FROM [Maintenance History tbl] AS MH2
           WHERE MH2.[PM#] = MH.[PM#]
        )
      ));

. Выбирает четыре поля, в которых дата завершения является самой последней.

Это не работает, если есть только 1 строка.

Как сделать так, чтобы это возвращало максимальную дату, если есть только 1 строка?

1 Ответ

0 голосов
/ 08 июня 2018

Я думаю, вы пропустили условие фильтрации Work Done = "LT" внутри подзапроса.Попробуйте добавить его так:

SELECT MH.[PM#], 
       MH.[Work Done], 
       MH.[Date Done], 
       MH.Comments, 
       MH.[SEM Completed by]
 FROM [Maintenance History tbl] AS MH
WHERE (MH.[Work Done] = "LT"
  AND (MH.[Date Done] =
        ( SELECT Max(MH2.[Date Done])
            FROM [Maintenance History tbl] AS MH2
           WHERE MH2.[PM#] = MH.[PM#]
             and MH2.[Work Done] = "LT"
        )
      ));
...