查找日期最新或最少的记录

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。

本文介绍了如何使用上限值查询和总计查询来查找一组记录中的最新日期或最早日期。 这可以帮助你回答各种商业问题, 例如, 当客户最后下订单时, 或者五个季度是你最适合销售的 (按城市)。

本文内容

概述

准备要遵循的示例数据和示例

查找最新日期或最新日期

查找记录组的最新日期和最新日期

概述

你可以使用上限值查询对数据进行排名并查看最高排名的项。 上限值查询是一种选择查询, 它从结果的顶部 (例如, 网站上五个最受欢迎的页面) 返回指定数量或百分比值。 你可以对任何类型的值使用上限值查询, 而无需为数字。

如果要在对数据进行排序之前对其进行分组或汇总, 则无需使用上限值查询。 例如, 假设您需要查找公司运营的每个城市的给定日期的销售数字。 在这种情况下, 城市成为类别 (需要查找每个城市的数据), 因此您可以使用总计查询。

当你使用上限值查询查找在一个或多个记录中包含最新或最早日期的记录时, 你可以回答各种商业问题, 如以下内容:

  • 最近谁在进行大多数销售?

  • 客户上次下订单的时间是什么?

  • 团队中接下来的三个生日是什么时候?

若要执行上限值查询, 请首先创建一个选择查询。 然后, 根据您的问题对数据进行排序-无论您是要查找顶部还是底部。 如果需要对数据进行分组或汇总, 请将选择查询转换为总计查询。 然后, 你可以使用聚合函数 (如MaxMin ) 返回最大值或最小值, 或者第一个最后一个, 返回最早或最晚的日期。

本文假定你使用的日期值具有 "日期/时间" 数据类型。 如果日期值在文本字段中, 则。

请考虑使用筛选器, 而不是上限值查询

如果你有特定的日期, 请务必更好地使用筛选器。 若要确定是否应创建上限值查询或应用筛选器, 请考虑以下事项:

  • 如果要返回日期与特定日期相匹配、早于或晚的所有记录, 请使用筛选器。 例如, 若要查看4月和7月之间的销售额的日期, 请应用筛选器。

  • 如果要返回字段中包含最新或最晚日期的指定数量的记录, 并且不知道确切的日期值, 或者它们无关紧要, 您可以创建上限值查询。 例如, 若要查看五个最佳销售季度, 请使用上限值查询。

有关创建和使用筛选器的详细信息, 请参阅文章应用筛选器以查看 Access 数据库中的选择记录

返回页首

准备要遵循的示例数据和示例

本文中的步骤使用以下示例表中的数据。

"雇员" 表   

LastName

第一 名称

地址

城市

CountryOrR egion

出生 日期

录用 日期

刘鹏

Josh

1 Main St.

New York

USA

05-1968 年2月-

10月10日-1994

Heloo

Waleed

52 1st St.

Boston

USA

22-5 月-1957

1996年11月22日-

潘杰

Guido

3122 75th Ave. S.W.

Seattle

USA

1960年11月11日-

2003年3月11日-2000

Bagel

部门 Philippe

1 Contoso Blvd.

London

英国

1964年3月22日

22日-1998

价格

Julian

Calle Smith 2

墨西哥城

Mexico(墨西哥)

05-6 月-1972

05-2002 年1月

Hughes

Christine

3122 75th (圣)

Seattle

USA

1970年1月23日

23-1999 年4月

Riley

67 Big St.

Tampa

USA

1964年4月14日-

10月14日-2004

Birkby

Dana

2 Nosey Pkwy

珠海

USA

10月29日-1959

1997年3月29日-

"事件列表" 表    

TypeID

事件 键入

产品发布

2

企业功能

3

Private 函数

4

基金筹集

5

商贸展示

6

结束

7

音乐会

8

9

街道公平

“客户”表    

CustomerID

公司

联系人

康拓工程有限公司 图形

Jonathan Haas

2

Tailspin Toys

潘蕾 Adams

3

Fabrikam

Carol Philips

4

Wingtip 玩具

Lucio Iallo

5

A. 基准

Mandar Samant

6

嘉元实业

Brian Burke

7

设计研究院

Jaka Stele

8

漂亮画的学校

Milena Duomanova

"事件" 表    

事件 ID

事件 键入

客户

事件 日期

价格

产品发布

康拓工程有限公司

4/14/2011

$10,000

2

企业功能

Tailspin Toys

4/21/2011

¥80,000

3

商贸展示

Tailspin Toys

2011-5-1

$25000

4

Graphic Design Institute

5/13/2011

¥45,000

5

商贸展示

康拓工程有限公司

5/14/2011

$55000

6

音乐会

漂亮画的学校

5/23/2011

¥120,000

7

产品发布

A. 基准

6/1/2011

¥150,000

8

产品发布

Wingtip 玩具

6/18/2011

¥210,000

9

基金筹集

嘉元实业

6/22/2011

$1300

10

结束

Graphic Design Institute

6/25/2011

$2450

11

结束

康拓工程有限公司

2011-7-4

$3800

12

街道公平

Graphic Design Institute

2011-7-4

¥55,000

注意: 本部分中的步骤假定客户和事件类型表驻留在与 Events 表具有一对多关系的 "一" 方。 在这种情况下, 事件表共享 "客户 id" 和 "TypeID" 字段。 在下面各节中介绍的总计查询不会起作用, 而无需这些关系。

将示例数据粘贴到 Excel 工作表中

  1. 启动 Excel。 将打开一个空的工作簿。

  2. 按 SHIFT + F11 插入工作表 (将需要四个)。

  3. 将每个示例表中的数据复制到一个空工作表中。 包含列标题 (第一行)。

基于工作表创建数据库表

  1. 选择第一个工作表中的数据, 包括列标题。

  2. 右键单击 "导航窗格", 然后单击 "粘贴"。

  3. 单击"是"以确认第一行包含列标题。

  4. 对其余每个工作表重复步骤1-3。

查找最新日期或最新日期

本部分中的步骤使用示例数据来阐释创建上限值查询的过程。

创建基本的上限值查询

  1. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

    将出现 "显示表" 对话框。

  2. 双击 "雇员" 表, 然后单击 "关闭"。

    如果使用示例数据, 请将 "雇员" 表添加到查询中。

  3. 将要使用的查询中的字段添加到设计网格中。 双击每个字段, 或将每个字段拖放到 "字段" 行中的空白单元格上。

    如果使用示例表, 请添加 "名字"、"姓氏" 和 "出生日期" 字段。

  4. 在包含上限值或下限值的字段 ("出生日期" 字段中, 如果使用示例表), 请单击 "排序" 行, 然后选择 "升序" 或 "降序"。

    "降序" 排序顺序返回最近的日期, 而 "升序" 排序顺序返回最早的日期。

    重要: 只有在包含日期的字段的 "排序" 行中才必须设置值。 如果为另一个字段指定排序顺序, 查询不会返回所需的结果。

  5. 在 "设计" 选项卡上的 "工具" 组中, 单击 "全部" 旁边的向下箭头 (上限值列表), 然后输入要查看的记录数, 或从列表中选择一个选项。

  6. 单击 "运行 按钮图像 " 以运行查询并在数据表视图中显示结果。

  7. 将查询另存为 NextBirthDays。

你可以看到这种类型的上限值查询可以回答一些基本问题, 例如谁是公司中最早或 youngest 的人员。 接下来的步骤介绍了如何使用表达式和其他条件为查询添加强大功能和灵活性。 下一步中显示的条件返回接下来的三个员工生日。

向查询添加条件

这些步骤使用在前面的过程中创建的查询。 只要包含实际日期/时间数据, 而不是文本值, 就可以跟上一个不同的上限值查询一起使用。

提示:  如果想要更好地了解此查询的工作方式, 请在每个步骤中在 "设计" 视图和 "数据表" 视图之间切换。 如果要查看实际的查询代码, 请切换到 "SQL" 视图。 若要在视图之间进行切换, 请右键单击查询顶部的选项卡, 然后单击所需的视图。

  1. 在导航窗格中, 右键单击 "NextBirthDays" 查询, 然后单击 "设计视图"。

  2. 在查询设计网格中, 在 "出生日期" 右侧的列中, 输入以下内容
    :MonthBorn: DatePart ("m", [出生日期])
    此表达式使用DatePart函数提取来自出生日期的月份。

  3. 在查询设计网格的下一列中, 输入以下内容:
    DayOfMonthBorn: DatePart ("d"、[出生日期])
    此表达式通过使用DatePart函数从出生日期中提取月份的日期。

  4. 对于刚输入的两个表达式, 清除 "显示" 行中的复选框。

  5. 单击每个表达式的 "排序" 行, 然后选择 "升序"。

  6. 在 "出生日期" 列的 "条件" 行中, 键入以下
    表达式:Month ([出生日期]) > Month (date ()) 或 month ([出生日期]) = Month (date ()) 和 Day ([出生日期]) >Day (date
    ()) 此表达式将执行以下操作:

    • month ( [出生日期]) > Month (Date ())指定每位员工的出生日期在将来的某个月内。

    • Month ( [出生日期]) = Month (Date ()) 和 Day ([出生日期]) >Day (Date ())指定如果出生日期出现在当前月份, 则该生日将位于当天或当天之后。

      简而言之, 此表达式排除在1月1日和当前日期之间发生生日的任何记录。

      提示:  有关查询条件表达式的更多示例, 请参阅查询条件示例一文。

  7. 在 "设计" 选项卡上的 "查询设置" 组中, 在 "返回" 框中键入3

  8. 在“设计”选项卡上的“结果”组中,单击“运行按钮图像

注意:  在您自己的查询中使用自己的数据时, 有时可能会看到比你指定的更多的记录。 如果你的数据包含多条记录, 这些记录共有一个值 (在上限值之间), 则你的查询将返回所有此类记录, 即使它表示返回的记录比所需的更多。

返回页首

查找记录组的最新日期和最新日期

您可以使用总计查询查找组中记录的最早或最晚日期, 例如按城市分组的事件。 总计查询是使用聚合函数 (如Group By MinMaxCountFirstLast)计算每个输出字段的值的选择查询。

包括要用于分类的字段–分组依据–以及要汇总的值所在的字段。 如果你包含其他输出字段-例如, 当你按事件类型进行分组时, 该查询还将使用这些字段来生成组、更改结果, 以便它们不会回答最初的问题。 若要使用其他字段标记行, 请创建一个使用总计查询作为源的其他查询, 并向该查询添加其他字段。

提示:  在步骤中构建查询是一种用于回答更高级问题的非常有效的策略。 如果在使用复杂查询时遇到问题, 请考虑是否可以将其分解为一系列简单的查询。

创建总计查询

此过程使用"事件" 示例表"事件" 示例表来回答此问题:

何时是每个事件类型的最新事件, 不包括 concerts?

  1. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  2. 在 "显示表" 对话框中, 双击 "事件" 和 "事件列表" 表。
    每个表都显示在查询设计器的顶部区域中。

  3. 关闭“显示表”对话框。

  4. 双击 "工作表" 表的 "事件" 字段和 "事件" 表中的 "EventDate" 字段, 以将字段添加到查询设计网格中。

  5. 在查询设计网格中, 在 "事件" 字段的 "条件" 行中, 输入 " <>Concert"。

    提示:  有关条件表达式的更多示例, 请参阅查询条件示例一文。

  6. “设计”选项卡上的“显示/隐藏”组中,单击“总计”

  7. 在查询设计网格中, 单击 "EventDate" 字段的 "汇总" 行, 然后单击 "最大"。

  8. 在“设计”选项卡上的“结果”组中,单击“视图”,然后单击“SQL 视图”

  9. 在 SQL 窗口中 SELECT 子句的末尾, 紧挨 AS 关键字之后, 将MaxOfEventDate替换为MostRecent

  10. 将查询另存为 MostRecentEventByType。

创建第二个查询以添加更多数据

此过程使用上述过程中的 MostRecentEventByType 查询来回答此问题:

谁是每个事件类型的最新事件中的客户?

  1. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  2. 在 "显示表" 对话框中的 "查询" 选项卡上, 双击 "MostRecentEventByType" 查询。

  3. 在对话框的 "" 选项卡上, 双击 "事件" 表和 "客户" 表。

  4. 在 "查询设计器" 中, 双击下列字段:

    1. 在 "事件" 表中, 双击 "事件"。

    2. 在 MostRecentEventByType 查询中, 双击 "MostRecent"。

    3. 在 "客户" 表中, 双击 "公司"。

  5. 在查询设计网格中, 在 "事件类型" 列的 "排序" 行中, 选择 "升序"。

  6. 在“设计”选项卡上的“结果”组中,单击“运行”。

返回页首

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×