2013-05-08 9 views
1

Я работаю над созданием системы отслеживания рабочей нагрузки, у меня есть таблица, в которой в настоящее время перечислены все задачи, которые необходимо выполнить (каждый с уникальным идентификатором), но также имеет все обновления с помощью datestamp, чтобы я мог отслеживать, сколько времени потребовалось для обновления статуса.Выберите последний обновленный ряд с условием

Моя дилемма заключается в том, что для формы я хочу запросить только последнее обновление, в настоящее время запрос select показывает как исходную задачу, так и обновленную задачу отдельно.

На словах я предполагаю, что мне нужно выбрать только задание, учитывая, что идентификатор является последним с тем же номером задачи (который отличается от идентификатора, при его обновлении будут дублироваться)

Так что, если у меня есть:

ID Task Date 
1 A 4/30/13 
2 B 5/2/13 
3 A 5/3/13 

это таблица показывает только:

ID Task Date 
3 A 5/3/13 
2 B 5/2/13 

Как я могу это сделать? Я думаю, что мне не хватает чего-то простого ...

+0

Я не знаю Access SQL, но на SQL-сервере я бы использовал подзапрос, который возвращает максимальный идентификатор (или идентификатор с максимальной датой), где задача соответствует основному запросу. Возможно, это приведет вас к правильному пути. – EvilBob22

ответ

4

Существует несколько способов подхода к этому запросу, даже в Access. Вот способ использования in с подзапроса:

select t.* 
from t 
where t.id in (select MAX(id) as maxid 
       from t 
       group by task 
      ) 
order by task 

подзапрос находит максимальные идентификаторы для всех задач. Затем он возвращает строки из исходной таблицы, соответствующие этим идентификаторам.

+0

Это было то, что я пытался выяснить, спасибо вам за ваш ответ - простой и сладкий. – Dm3k1

+0

@ Dm3k1. , , Я рад, что смог помочь. Приветствия. –