2015-11-05 65 views
0

我开发了一个数据库,用后面的架构访问:最后一个历史记录表的条目与MS-访问

第一个表:

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

而第二个表,通过它们的标识符链接到第一个表,它被用作历史Y,保持与他的负责一些事件:

  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; 

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

+1

你试过用MAX代替LAST吗? –

+0

谢谢!有用! –

回答

1

您需要先将History组合起来才能找到最大条目。对此进行子查询,然后使用TABLE1加入子查询。

看到这个问题的一个很好的例子:
Is it better/more efficient to use sub queries or SELECT statements within the WHERE clause (in MS Access)
(你想要的“合并为一个单一的查询”变种)。

如果您无法正常工作,请添加评论。

+0

感谢您的回答@ Andre451,我首先尝试了Darren Bartrup-Cook的建议,它适用于我,但我稍后会阅读这个问题! :) –

相关问题