在 Access 查询中查找两个字段的最大日期
Finding MAX Date of Two Fields in an Access Query
在我的访问数据库中,我们跟踪两组日期。一组是会费支付日期,另一组是其他捐款(非会员捐款)的日期。每个人有多个日期,具体取决于每种类型的付款次数。
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 |
+----+---------------+---------------+
首先,我需要知道这两个字段中每一个的最近付款,所以我 运行 查询告诉我每个字段的最大(最近)日期。
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 |
+----+---------------+---------------+-----------------+
尝试根据您自己的情况进行调整:
SELECT tblTest.DueDate, tblTest.ContDate, [DueDate]-[ContDate] AS Test, IIf([Test]<0,[ContDate],[DueDate]) AS MaxRes
FROM tblTest;
"Test" 查找较晚的日期,ContDate 或 Due Date。 IIf 语句选择较晚的日期。
这有帮助吗?
在我的访问数据库中,我们跟踪两组日期。一组是会费支付日期,另一组是其他捐款(非会员捐款)的日期。每个人有多个日期,具体取决于每种类型的付款次数。
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 |
+----+---------------+---------------+
首先,我需要知道这两个字段中每一个的最近付款,所以我 运行 查询告诉我每个字段的最大(最近)日期。
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 |
+----+---------------+---------------+-----------------+
尝试根据您自己的情况进行调整:
SELECT tblTest.DueDate, tblTest.ContDate, [DueDate]-[ContDate] AS Test, IIf([Test]<0,[ContDate],[DueDate]) AS MaxRes
FROM tblTest;
"Test" 查找较晚的日期,ContDate 或 Due Date。 IIf 语句选择较晚的日期。
这有帮助吗?