Во-первых, если вам нужен список всех заданий и сколько дней они заняли, вы можете сделать что-то вроде этого:
select
j.regNo,
g.garageName,
datediff(day,j.dateOut,j.dateIn) as [Number of Days]
from Job j
join Garage g on j.garageID = g.garageID
Вы не указываете свою RDBMS, поэтому я предположил SQL Сервер выше и используется datediff
для получения количества дней между двумя датами. Если вы используете другую СУБД, вам может потребоваться использовать другую функцию для достижения этой цели, но я не знаю, как можно напрямую вычитать одну дату-время из другой без какого-либо преобразования или функции для этого.
Я также заменил ваше предложение для нескольких таблиц from
на объединение и включил псевдонимы для таблиц, так как обычно это предпочтительный подход для запроса нескольких таблиц.
Чтобы ответить на исходный вопрос, вы можете использовать запрос выше с order by
и top 1
, чтобы получить то, что вы ищете:
select top 1
j.regNo,
g.garageName,
datediff(day,j.dateOut,j.dateIn) as [Number of Days]
from Job j
join Garage g on j.garageID = g.garageID
order by datediff(day,j.dateOut,j.dateIn) desc