访问数据库 - 最新记录 - 最大功能

时间:2017-08-21 16:34:35

标签: sql ms-access max

我正在建立一个数据库来跟踪贷款设备。我正在尝试构建一个查询,显示每个机器位置的最新记录。

相关表格是:

变动:

  • 运动ID(PK)
  • EntryDate(在记录条目上自动生成)
  • Serial(来自名为stock的表中的FK,带有(Make,Model等)
  • 位置(机器在哪里)
  • 状态(可用,测试,销售等)

目前的查询是:

SELECT Movements.Serial, Max(Movements.EntryDateMovements) AS MaxOfEntryDateMovements
FROM Movements
GROUP BY Movements.Serial;

其中吐出记录的最新日期以及与之关联的序列。

我需要的是在结果中显示的状态,但它仍然按序列分组。

我的问题是,当我尝试添加它时,它会返回一个错误,表达式不是聚合函数的一部分,或者我得到的结果比预期的多,因为它不再仅仅保持结果的唯一性到串口。

我是一个非常新的Access,到目前为止,我已经能够通过指南,书籍和这个网站,让其他一切工作,但我陷入了这个障碍。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

Select top 1 *
from Movements
order by EntryDateMovements desc

这将为您提供最新记录的所有内容。这是TSQL,但我认为它会延续到Access。

答案 1 :(得分:0)

试试这个

Select  t.serial,t.EntryDateMovements ,t.location, t.status 
From movements as t
Inner join (SELECT Movements.Serial, Max(Movements.EntryDateMovements) AS MaxOfEntryDateMovements
FROM Movements
GROUP BY Movements.Serial) as MaxMovements on t.serial= MaxMovements.serial and t.EntryDateMovements=MaxMovements.MaxOfEntryDateMovements