本文介绍了如何使用上限值查询来查找记录集中具有最近或最早日期的记录。您可以使用此类查询所返回的信息来回答各种业务问题,例如某个客户上次下订单的时间。
了解上限值查询如何处理日期
当您需要在某个表或某一组记录中查找具有最近日期或最早日期的记录时,可以使用上限值查询。然后,您可以使用这些数据来回答多种业务问题,例如:
- 雇员上次出售货物的日期是哪一天?对该问题的回答可以帮助您辨别效率最高或最低的雇员。
- 客户上次下订单的日期是哪一天?如果某个客户已经有一段(指定)时间没有下订单了,您可能希望将该客户移动到非活动列表中。
- 下一个或 n 个过生日的是谁?
创建和使用上限值查询的规则
创建上限值查询之前,需要先创建一个选择查询。您可以对上限值查询应用排序次序,也可以将该查询转换为总计查询,具体取决于您需要得到什么样的结果。如果转换该查询,您需要使用一个聚合函数,例如使用 Max 或 Min 返回上限值或下限值,或使用 First 或 Last 返回最早日期或最近日期。只有当您需要查找位于一组或一类集合中的数据时,才需要使用总计查询和集合函数。例如,假定您需要查找您的公司设立了运营机构的每个城市在指定日期的销售数字。在这种情况下,城市将成为类别(您需要查找每个城市的数据),因此您需要使用总计查询。
继续操作时,请记住:无论使用哪种查询类型,您的查询都必须使用包含描述性数据的字段(例如客户名称),还必须使用一个包含要查找的日期值的字段。此外,日期值必须位于设置为日期/时间数据类型的字段中。如果您尝试针对文本字段中的日期值运行本文中介绍的查询,查询将失败。另外,如果您需要使用总计查询,则您的数据字段必须包括类别信息,例如城市或国家/地区字段。
在上限值查询与筛选之间进行选择
要确定应该创建上限值查询还是应用筛选,请从以下情况中进行选择:
查找最近日期或最早日期
本部分中的步骤介绍了如何创建使用排序次序的基本上限值查询,以及使用表达式和其他条件的更高级的查询。第一部分演示创建上限值查询的基本步骤,第二部分介绍如何通过添加条件来查找以下几位雇员的生日。这些步骤会用到下面的示例表中的数据。
姓氏 |
名字 |
地址 |
城市 |
国家/地区 |
出生日期 |
聘用日期 |
刘 |
鹏 |
西直门大街 1 号 |
宁波 |
中国 |
1968-02-05 |
1994-06-10 |
王 |
力 |
南京路 52 号 |
大连 |
中国 |
1957-05-22 |
1996-11-22 |
张 |
宏 |
春西路 3122 号 |
咸阳 |
中国 |
1960-11-11 |
2000-03-11 |
费 |
英博 |
玉林街 1 号 |
昆明 |
中国 |
1964-03-22 |
1998-06-22 |
费 |
雪梅 |
杨柳巷 2 号 |
哈尔滨 |
中国 |
1972-06-05 |
2002-01-05 |
霍 |
奎廷 |
樱花街 3122 号 |
咸阳 |
中国 |
1970-01-23 |
1999-04-23 |
李 |
斯闻 |
南关大街 67 号 |
长春 |
中国 |
1964-04-14 |
2004-10-14 |
何 |
雅莉 |
霞飞路 2 号 |
重庆 |
中国 |
1959-10-29 |
1997-03-29 |
如果需要,您可以将这些示例数据手动输入到新表中,也可以将此示例表复制到例如 Microsoft Office Excel 2007 的电子表格程序中,然后使用 Access 将结果工作表导入到一个表中。