【问题标题】:SQL Find most recent record for each unique IDSQL 查找每个唯一 ID 的最新记录
【发布时间】:2021-10-04 15:49:45
【问题描述】:

MS Access,希望根据最近的日期和另一列记录 ID 分数小于 60 的第三个条件查询每个唯一记录 ID

示例表:

RecordID Score Date
1 80 1/1/2020
1 60 1/1/2021
2 80 1/1/2020
2 60 1/1/2021

查询会拉取:

RecordID Score Date
1 60 1/1/2021
2 60 1/1/2021

我最初尝试将记录 ID 和最近的日期作为起点:

SELECT RecordID, MAX(date)
FROM table
GROUP BY RecordID;

但它所做的只是回报我

RecordID Date
null 1/1/2021

感谢您提前提供的任何帮助。

【问题讨论】:

  • 您显示的查询不应该返回那个。它应该在没有 Score 列的情况下返回所需的结果。
  • 如果你想要小于60的值,为什么60在结果集中?此外,您的示例数据无法为 RecordId 返回 NULL 以进行简单聚合。
  • 这能回答你的问题吗? Access Select Max date with corresponding records

标签: sql ms-access


【解决方案1】:

如果您希望分数 60 出现在查询结果中,则条件必须小于或等于 60。
然后代码是:

SELECT Table.RecordID, Table.Score, Max(Table.Date) AS MaxDate
FROM [Table]
WHERE (((Table.Score)<=60))
GROUP BY Table.RecordID, Table.Score;

【讨论】:

  • 谢谢,这行得通。我的初始查询不起作用,因为我的 RecordID 调用与我的数据集标题 x.x 不同
猜你喜欢
  • 2021-01-10
  • 2020-05-29
  • 2020-07-29
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多