在访问查询中查找两个字段的 MAX 日期

Posted

技术标签:

【中文标题】在访问查询中查找两个字段的 MAX 日期【英文标题】:Finding MAX Date of Two Fields in an Access Query 【发布时间】:2015-02-19 20:17:17 【问题描述】:

在我的访问数据库中,我们跟踪两组日期。一组是缴纳会费的日期,另一组是其他捐款的日期(非会员捐款)。根据每种类型的付款次数,每个人有多个日期。

Example:  
+----+---------------+---------------+
| ID | Dues_Date     | Cont_Date     | 
+----+---------------+---------------+
| 1  | 01/01/15      | 09/12/11      | 
|    | 01/01/14      |               | 
|    | 01/01/13      |               |  
| 2  | 07/30/14      | 06/20/13      |  
|    |               | 11/12/11      |  
+----+---------------+---------------+

首先我需要知道这两个字段的最近付款,所以我运行了一个查询,告诉我每个字段的 MAX(最近)日期。

Example Query:  
+----+---------------+---------------+
| ID | Max Dues_Date | Max Cont_Date |
+----+---------------+---------------+
| 1  | 01/01/15      | 09/12/11      |
| 2  | 07/30/14      | 06/20/13      |
| 3  | 02/11/13      | 09/16/14      |
| 4  | 07/30/12      | 06/20/11      |
| 5  | 12/13/13      | 11/12/14      |
+----+---------------+---------------+

现在我需要同一个查询中的第三个字段来比较前两个字段的结果并显示这两个字段的最大值。 我在查询中有第 2 列和第 3 列;我怎样才能在同一个查询中创建第 4 列?

Example Query:  
+----+---------------+---------------+-----------------+
| ID | Max Dues_Date | Max Cont_Date | Max Date(DD&CD) |  
+----+---------------+---------------+-----------------+
| 1  | 01/01/15      | 09/12/11      | 01/01/15        |  
| 2  | 07/30/14      | 06/20/13      | 07/30/14        |
| 3  | 02/11/13      | 09/16/14      | 09/16/14        |  
| 4  | 07/30/12      | 06/20/11      | 07/30/12        |  
| 5  | 12/13/13      | 11/12/14      | 11/12/14        |  
+----+---------------+---------------+-----------------+

【问题讨论】:

【参考方案1】:

尝试根据您自己的场景进行调整:

SELECT tblTest.DueDate, tblTest.ContDate, [DueDate]-[ContDate] AS Test,  IIf([Test]<0,[ContDate],[DueDate]) AS MaxRes
FROM tblTest;

“测试”查找较晚的日期、ContDate 或到期日期。 IIf 语句选择较晚的日期。

这有帮助吗?

【讨论】:

是的!我能够适应这个并且效果很好! (只需添加“nz”来替换空值)谢谢!

以上是关于在访问查询中查找两个字段的 MAX 日期的主要内容,如果未能解决你的问题,请参考以下文章

如何访问 Django 中查询集的特定字段?

CakePHP 查找两个日期之间查询的条件

在SQL中,如何查询某一字段中最大值的数据

访问:如何在整个数据库中查找字段?

按访问日期删除

VBA中日期之间的SQL查询