MS ACCESS - 查找最近记录

时间:2017-01-03 16:47:19

标签: ms-access

为标题道歉,我不知道如何用它来表达。

我目前有两张桌子" ASSETS"和"贷款" ASSETS包含一个简单的设备清单 它有一个字段" AssetID"与LOANS中的字段具有一对多关系称为" LoanAssetID"

每件设备都可以有很多贷款。它可以借给一个人,然后返回,然后借给另一个人。 " LOANS"中有一个字段。命名" ReturnDate"人们记录一件设备退回的日期。还有一个名为" StartDate"。

的字段

一件设备可以说是目前正在贷款的。如果最近的记录(具有最近的开始日期)没有返回日期。

但是,在我的查询写作中我不够清楚完成此操作。我需要查找任何资产的最新记录,可能有多个返回日期,但这些可能并不总是与最近的贷款相对应。

理想情况下,我希望这样计算一个字段,以便将设备标记为“贷款”。 '可用'等

感谢您提前提供任何帮助

到目前为止,我已经尝试过Max Query,但是,由于我误解了查询,我很困惑为什么它会返回多个结果。
所以,目前我已经尝试了

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不止一个字段,其中存在多个结果。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

查询按返回日期分组,我不相信你想要的。尝试:

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
相关问题