【问题标题】:Last entry of a history table with MS-Access使用 MS-Access 的历史表的最后一个条目
【发布时间】:2023-03-25 07:47:02
【问题描述】:

我使用 Access 开发了一个具有下一个架构的数据库:

第一个表:

  1. 标识符
  2. 序列号
  3. 修订(是/否)

第二个表,通过标识符链接到第一个表,它被用作历史记录,将一些事件由他负责:

  1. 标识符
  2. 日期事件
  3. 责任事件
  4. 活动说明

所以,我正在尝试创建一个 SQL 查询,通过这种方式将历史表中的最后一个事件带入一个确定的标识符:

SELECT M.ID, M.SN, Last(H.Date) AS MaxDate, Last(H.Responsible) AS LastResponsible, 
Last(H.Description) AS LastDescription
FROM TABLE1 AS M INNER JOIN History AS H ON M.ID=H.ID
WHERE M.Disponible=No
GROUP BY M.ID, M.SN;

但它给我带来的历史价值有时不是最后的,为什么会是这个原因?

【问题讨论】:

  • 你试过用 MAX 代替 LAST 吗?

标签: sql ms-access


【解决方案1】:

您需要首先对History 进行分组以找到最大条目。对此进行子查询,然后使用TABLE1 加入子查询。

请参阅这个问题以获得一个很好的例子:
Is it better / more efficient to use sub queries or SELECT statements within the WHERE clause (in MS Access)
(您想要“组合为单个查询”变体)。

如果您无法使用它,请添加评论。

【讨论】:

  • 感谢您的回答@Andre451,我首先尝试了 Darren Bartrup-Cook 的建议,它对我有用,但我稍后会阅读这个问题! :)
猜你喜欢
  • 1970-01-01
  • 2015-03-11
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多