【问题标题】:Select Last Updated Row with condition选择带有条件的最后更新行
【发布时间】:2013-05-08 20:31:36
【问题描述】:

我正在构建一个工作负载跟踪系统,我有一个表,其中列出了当前要完成的所有任务(每个任务都有一个唯一的 ID),而且所有更新都带有时间戳,以便我可以跟踪更新状态需要多长时间。

我的困境是,对于我只想查询最新更新的表单,当前选择查询分别显示原始任务和更新任务。

换句话说,我想我需要做的是只选择一个任务,因为 ID 是最后一个具有相同任务编号的任务(与 ID 不同,更新时会有重复)

如果我有:

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

我该怎么做?我想我错过了一些简单的东西......

【问题讨论】:

  • 我不知道 Access SQL,但是在 SQL server 中,我会使用一个子查询,它返回任务与主查询匹配的最大 ID(或具有最大日期的 ID)。也许这会让你走上正确的道路。

标签: sql ms-access select


【解决方案1】:

有多种方法可以处理此查询,即使在 Access 中也是如此。这是一种将in 与子查询一起使用的方法:

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

子查询查找所有任务的最大 ID。然后它从原始表中返回与这些 id 匹配的行。

【讨论】:

  • 这正是我想弄清楚的,感谢您的回复 - 简单而甜蜜。
  • @Dm3k1。 . .我很高兴我能提供帮助。干杯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多