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

时间:2015-02-19 20:17:17

标签: ms-access max

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

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      |
+----+---------------+---------------+

现在我需要在同一查询中使用第三个字段来比较前两个字段的结果,并显示这两个字段的MAX。 我在查询中有第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 个答案:

答案 0 :(得分:0)

尝试根据您自己的情况进行调整:

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

&#34;试验&#34;查找哪个是更晚的日期,ContDate或截止日期。 IIf语句选择较晚的日期。

这有帮助吗?