Ms access MS ACCESS-查找最近记录的字段

Ms access MS ACCESS-查找最近记录的字段,ms-access,Ms Access,为标题道歉,我不知道该如何表达 我目前有两个表“资产”和“贷款” 资产包含一个简单的设备列表 它有一个字段“AssetID”,它与贷款中的一个字段“LoanAssetID”有一对多的关系 每台设备都可以有很多贷款。它可以借给一个人,然后归还,然后借给另一个人。“贷款”中有一个名为“归还日期”的字段,人们在该字段中记录设备归还的日期。还有一个名为“StartDate”的字段 如果最新记录(具有最新开始日期的记录)没有归还日期,则可以说一件设备当前处于“借出”状态 然而,我在写查询时不够清楚,无法完

为标题道歉,我不知道该如何表达

我目前有两个表“资产”和“贷款” 资产包含一个简单的设备列表 它有一个字段“AssetID”,它与贷款中的一个字段“LoanAssetID”有一对多的关系

每台设备都可以有很多贷款。它可以借给一个人,然后归还,然后借给另一个人。“贷款”中有一个名为“归还日期”的字段,人们在该字段中记录设备归还的日期。还有一个名为“StartDate”的字段

如果最新记录(具有最新开始日期的记录)没有归还日期,则可以说一件设备当前处于“借出”状态

然而,我在写查询时不够清楚,无法完成这一点。我需要找到任何资产的最新记录,可能有多个归还日期,但这些日期可能并不总是对应于最新的贷款

理想情况下,我希望这样计算一个字段,将设备标记为“借出”“可用”等

提前谢谢你的帮助

到目前为止,我已经尝试了Max查询,但可能是由于我对查询的误解,我不明白为什么它会返回多个结果。
所以,目前我已经试过了

SELECT Max(tbl_Loans.[Start Date]) AS [MaxOfStart Date],tbl_Loans [Return Date], tbl_Loans.LoanAssetID
FROM tbl_Loans
GROUP BY tbl_Loans.[Return Date], tbl_Loans.LoanAssetID
HAVING (((tbl_Loans.[Return Date]) Is Null));
但是,我想要的是任何给定LoanAssetID的最新值;我得到的是每个给定LoanAssetID的多个字段,其中存在多个结果


感谢您的帮助

查询是按返回日期分组的,我相信您不希望这样。尝试:

SELECT Max(tbl_Loans.[Start Date]) AS [MaxOfStart Date],tbl_Loans.[Return Date], tbl_Loans.LoanAssetID
FROM tbl_Loans
GROUP BY tbl_Loans.LoanAssetID
HAVING tbl_Loans.[Return Date] Is Null;
或者,如果您的系统足够健壮,可以假设任何空归还日期都将与最近的贷款相对应,因为尚未归还的资产无法借给其他个人,则您可以在表中搜索空归还日期:

SELECT tbl_Loans.LoanAssetID
FROM tbl_Loans
GROUP BY tbl_Loans.LoanAssetID
HAVING tbl_Loans.[Return Date] Is Null

你试过什么了吗?这听起来像是一个家庭作业问题。你能创建一个查询,返回贷款表中每个资产的最大值(startDate)吗?我很高兴这听起来很简单,因为我正在努力触摸。我很感激这对其他人来说可能很容易,也很感激你花时间来帮助我。谢谢你,尽管我还没有完全做到。不幸的是,上面的代码不起作用,但我想我更接近于理解——在求和查询中,如果我只想显示返回日期,我如何在不对它们进行分组的情况下实现这一点?我是否需要在此查询中写入表达式字段以返回“最近贷款”字段,然后使用另一个查询查找返回日期是否为空?不幸的是,我使用的数据集已存在多年,不够干净,无法使用第二个解决方案。我从顶部代码中得到的错误是语法错误(缺少运算符)“tbl_Loans[返回日期]”很抱歉,我复制/粘贴了该数据集,并且没有注意到缺少的时段。它现在应该可以工作了。不幸的是,这仍然不起作用,对不起,如果我有更好的技能,我将能够排序它!现在我在查询表达式“tbl_Loans.LoanAssetId”中发现语法错误(缺少运算符),其中tbl_Loans.[Return Date]为Null。很抱歉,再次出现我的错误
其中
位于
分组依据
之前,您有
具有
,这对聚合查询很有好处,因此我将其改回。真让人尴尬,希望你能原谅我让你白费力气。