使用查询对数据求和

使用查询对数据求和

本文介绍如何使用一种类型的函数名为聚合函数的查询结果集中的数据求和。本文还简要介绍了如何使用其他聚合函数,如计数平均计数或求平均值的值结果集中的术语。此外,这篇文章介绍如何使用汇总行,而无需更改您的查询设计使用对数据求和的Access中的功能。

您想做什么?

了解对数据求和的方法

准备一些示例数据

使用汇总行将数据求和

使用查询计算总计

通过使用总计查询计算组总计

跨多个组使用交叉表查询的数据进行求和

聚合函数参考

了解对数据求和的方法

您可以对一列在查询中的数字求和使用一种类型的函数名为聚合函数。聚合函数对某列数据执行计算,并返回单个值。Access 提供多种聚合函数,包括求和计数Avg (用于计算平均值)、最小最大值。对数据求和通过将Sum函数添加到您的查询,使用Count函数,统计数据,依此类推。

此外, Access提供了多种方法向查询添加Sum和其他聚合函数。您可以:

  • 在数据表视图中打开查询并添加汇总行。汇总行中, Access中的功能允许您在一个或多个列的查询结果集而无需更改的查询设计中使用聚合函数。

  • 创建总计查询。总计查询计算分类汇总跨组的记录。汇总行将计算总计的一个或多个列 (字段) 的数据。例如,如果您想要汇总所有按城市或季度的销售额,您可以使用总计查询以您所需的类别,并通过对记录进行分组,然后对销售额求和的情况。

  • 创建交叉表查询。交叉表查询是查询的一种特殊类型,以显示其结果类似于 Excel 工作表网格中。交叉表查询汇总值,然后将其分组两组事实 — 沿侧面 (行标题),另一个组顶端 (列标题)。例如,可以使用交叉表查询以显示每个城市的销售总额过去三年,如下表所示︰

城市

2003

2004

2005

巴黎

254,556

372,455

467,892

悉尼

478,021

372,987

276,399

雅加达

572,997

684,374

792,571

...

...

...

...

注意: 本文档中的操作方法部分强调使用Sum函数,但请记住,您可以使用其他汇总行和查询中的聚合函数。有关使用其他聚合函数的详细信息,请参阅本文后面的聚合函数参考一节。

有关如何使用其他聚合函数的详细信息,请参阅在数据表中的显示列汇总一文。

以下各节中的步骤解释如何添加汇总行,请使用总计查询对数据求和跨组,以及如何使用交叉表查询的数据进行分类汇总跨组和时间间隔。执行操作时,请记住,许多聚合函数的工作方式仅在设置为特定的数据类型的字段中的数据。例如, SUM函数仅适用于设置为数字、 小数或货币数据类型的字段。有关每个函数需要的数据类型的详细信息,请参阅本文后面的聚合函数参考一节。

有关数据类型的常规信息,请参阅文章修改或更改数据类型字段设置

返回页首

准备一些示例数据

本文中的操作部分提供的示例数据的表。操作方法的步骤使用为了帮助您了解聚合函数的使用示例表。如果您愿意,您可以选择添加到新的或现有数据库的示例表。

Access 提供多种方法向数据库中添加这些示例表。您可以手动输入数据,可以将每个表复制到如 Excel 电子表格程序,然后将工作表导入 Access 中,或将数据粘贴到记事本等文本编辑器,并从生成的文本文件导入数据。

本部分中的步骤解释如何在空白数据表中手动输入数据以及如何将示例表复制到电子表格程序,然后将这些表导入 Access。有关创建和导入文本数据的详细信息,请参阅导入或链接文本文件中的数据一文。

本文中的操作步骤使用下面的表。使用这些表创建示例数据︰

类别表中︰

类别

洋娃娃

游戏和测验

图片和摄影

视频游戏

Dvd 和电影

爱好和模型

体育

产品表中︰

产品名称

价格

类别

程序员操作图

$ 12.95

洋娃娃

有趣的 C# (适用于整个家庭版块游戏)

$ 15.85

游戏和测验

关系数据库关系图

$ 22.50

图片和摄影

神奇的电脑片 (500 片)

$ 32.65

游戏和测验

访问 !游戏 !

$ 22.95

游戏和测验

计算机进阶和幻想世界

$ 78.50

视频游戏

计算机进阶的练习 !DVD !

$ 14.88

Dvd 和电影

摄像头

$ 36.75

体育

外部 5.25 英寸软盘驱动器 (1/4 缩放)

$ 65.00

爱好和模型

Bureaucrat 人像

$ 78.88

洋娃娃

黑夜

$ 53.33

视频游戏

构建您自己的键盘

$ 77.95

爱好和模型

订单表中︰

订单日期

发货日期

发货城市

运费

2005 年 11 月 14

2005 年 11 月 15 日

Jakarta(雅加达)

$ 55.00

2005 年 11 月 14

2005 年 11 月 15 日

悉尼

$ 76.00

2005 年 11 月 16 日

2005 年 11 月 17

悉尼

$ 87.00

2005 年 11 月 17

2005 年 11 月 18

Jakarta(雅加达)

$ 43.00

2005 年 11 月 17

2005 年 11 月 18

巴黎

$ 105.00

2005 年 11 月 17

2005 年 11 月 18

斯图加特

$ 112.00

2005 年 11 月 18

2005 年 11 月 19

维也纳

$ 215.00

2005 年 11 月 19

2005 年 11 月 20

迈阿密

$ 525.00

2005 年 11 月 20

2005 年 11 月 21

维也纳

$ 198.00

2005 年 11 月 20

2005 年 11 月 21

巴黎

$ 187.00

2005 年 11 月 21

2005 年 11 月 22

悉尼

$ 81.00

2005 年 11 月 23

2005 年 11 月 24

Jakarta(雅加达)

$ 92.00

订单明细表中︰

Order ID

产品名称

产品 ID

单价

数量

折扣

1

构建您自己的键盘

12

$ 77.95

9

5%

1

Bureaucrat 人像

2

$ 78.88

4

7.5%

2

计算机进阶的练习 !DVD !

7

$ 14.88

6

4%

2

神奇的计算机芯片

4

$ 32.65

8

0

2

计算机进阶和幻想世界

6

$ 78.50

4

0

3

访问 !游戏 !

5

$ 22.95

5

15%

4

程序员操作图

1

$ 12.95

2

6%

4

摄像头

8

$ 36.75

8

4%

5

外部 5.25 英寸软盘驱动器 (1/4 缩放)

9

$ 65.00

4

10%

6

关系数据库关系图

3

$ 22.50

12

6.5%

7

黑夜

11

$ 53.33

6

8%

7

关系数据库关系图

3

$ 22.50

4

9%

注意: 请记住,典型数据库中的顺序的详细信息表格将包含仅包含产品 ID 字段不是产品名称字段。示例表中使用的产品名称字段以使数据更易于阅读。

手动输入示例数据

  1. “创建”选项卡上的“表”组中,单击“表”

    Access 将新的空白表添加到数据库。

    注意: 如果打开新的空白数据库,无需执行此步骤,但每次需将表添加到数据库时均需此步骤。

  2. 双击标题行中的第一个单元格,然后输入示例表中的字段名称。

    默认情况下,Access 在表示空白字段标题行中使用文本添加新字段,如下所示︰

    数据表中的新字段

  3. 使用箭头键移动到下一个空白标题单元格,然后键入第二个字段的名称 (您可以按 TAB 或者双击新单元格)。重复此步骤,直到输入所有字段的名称。

  4. 在示例表中输入数据。

    输入数据时,Access 会推断出的每个字段的数据类型。如果您不熟悉关系数据库,您应设置特定的数据类型,如数字、 文本或日期/时间,对于每个表中的字段。设置数据类型有助于确保准确的数据输入,也有助于防止出现错误,例如在计算中使用电话号码。这些示例表,您应该告知推断数据类型的访问。

  5. 完成输入完数据后,单击保存

    键盘快捷方式按 CTRL + S。

    将显示“另存为”对话框。

  6. 表名称框中,输入示例表的名称,然后单击确定

    您使用的每个示例表的名称,因为操作方法部分中的查询中使用的那些名称。

  7. 您创建的每个开头的此部分中列出的示例表之前,请重复这些步骤。

如果不想手动输入数据,按照下面的步骤以将数据复制到电子表格文件,然后再将数据从电子表格文件导入到 Access。

创建示例工作表

  1. 启动电子表格程序并创建一个新的空白文件。如果您使用 Excel,将默认创建一个新的空白工作簿。

  2. 复制上面提供的第一个示例表并将其粘贴到第一个工作表,起的第一个单元格。

  3. 使用电子表格程序提供的方法,重命名工作表。为工作表的示例表相同的名称。例如,如果示例表名为类别,为您的工作表相同的名称。

  4. 重复步骤 2 和 3,将每个示例表复制到一个空白工作表和重命名工作表。

    注意: 您可能需要将工作表添加到您的电子表格文件。执行该任务的信息,请参阅电子表格程序的帮助。

  5. 将工作簿保存到计算机或网络上的方便位置,然后执行后续步骤。

基于工作表创建数据库表

  1. 在“外部数据”选项卡的“导入”组中,单击“Excel”。

    -或-

    单击“更多”,然后从列表中选择电子表格程序。

    随即出现“获取外部数据-项目名称电子表格”对话框。

  2. 单击浏览,打开您在前面的步骤中创建电子表格文件,然后单击确定

    将启动导入电子表格向导。

  3. 默认情况下,在向导页的下半部分显示在工作簿 (客户表中,如果您已按照上一节中的步骤),并从工作表中的数据的第一个工作表向导选择。单击下一步

  4. 在向导的下一页上,单击第一行包含列标题,然后单击下一步

  5. (可选) 在下一页上,使用文本框和在域选项下的列表以更改字段名称和数据类型或省略导入操作中的字段。否则,单击下一步

  6. 保持选中状态,让 Access 添加主键的选项,然后单击下一步

  7. 默认情况下,Access 适用于您的新表的工作表的名称。接受的名称或另一个名称,输入,然后单击完成

  8. 重复步骤 1 到 7,直到从工作簿中的每个工作表中创建了一个表。

重命名的主键字段

注意: 当您导入工作表时,Access 将自动添加到每个表的主键列,以及在默认情况下,Access 名为该列"ID",并将其设置为自动编号数据类型。在此对话框中的步骤解释如何重命名每个主键字段。因此,这样做有助于明确标识查询中的所有字段。

  1. 在导航窗格中,右键单击每个前面的步骤创建的表,然后单击设计视图

  2. 对于每个表中,找到主键字段。默认情况下,Access 名称ID的每个字段。

  3. 在每个主键字段字段名称列中,添加的表的名称。

    例如,您将重命名 ID 字段中的类别表"类别 id"和到"订单 id"。 订单表域订单明细表中,重命名字段拖动到"详细信息 id"。产品表中,重命名字段拖动到"产品 id"。

  4. 保存所做的更改。

只要在这篇文章中出现的示例表,它们包含主键字段,重命名字段是使用上述步骤所述。

返回页首

使用汇总行将数据求和

通过在数据表视图,添加行,并选择要使用的聚合函数,例如SumMinMaxAvg打开您的查询,可以向查询添加汇总行。本部分中的步骤解释如何创建基本的选择查询和添加汇总行。您不需要使用示例表上一节中所述。

创建基本的选择查询

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

  2. 显示表对话框中,双击您要在您的查询中使用的表,然后单击关闭

    选定的表显示为查询设计器的上半部分中的 windows。

  3. 双击您要在查询中使用的表字段。

    您可以包含字段包含描述性的数据,例如名称和描述,但必须包括字段包含数字或货币数据。

    每个字段显示在设计网格中的单元格。

  4. 单击运行 按钮图像 以运行查询。

    在数据表视图中显示查询结果集。

  5. (可选) 切换到设计视图并调整您的查询。为此,请右键单击查询的文档选项卡,然后单击设计视图。您可以调整查询,根据需要通过添加或删除表字段。若要删除字段,在设计网格中选择的列,然后按 DELETE。

  6. 保存您的查询。

添加汇总行

  1. 请确保您的查询在数据表视图中打开。为此,请右键单击查询的文档选项卡,然后单击数据表视图

    -或-

    在导航窗格中,双击查询。此运行查询并加载到数据表的结果。

  2. 开始选项卡,在记录组中,单击汇总

    在数据表中显示新的汇总行。

  3. 总计行中,单击您想要对求和,请字段中的单元格,然后从列表中选择Sum

隐藏汇总行

  • 开始选项卡,在记录组中,单击汇总

有关使用汇总行将的详细信息,请参阅在数据表中的显示列汇总一文。

返回页首

使用查询计算总计

总计是列中的所有值的总和。您可以计算多种类型的总计,其中包括︰

  • 对单个列中的值求和的简单总计。例如,您可以计算总运费。

  • 计算的总计,用于对多个列中的值求和。例如,您可以通过乘以成本的多个项目的项目排序,然后乘积求和计算总销售额。

  • 排除某些记录总计。例如,您可以仅对星期五计算总销售额。

以下各节中的步骤解释如何创建每种类型的总计。步骤使用订单和订单明细表。

订单表

Order ID

订单日期

发货日期

发货城市

运费

1

2005 年 11 月 14

2005 年 11 月 15 日

Jakarta(雅加达)

$ 55.00

2

2005 年 11 月 14

2005 年 11 月 15 日

悉尼

$ 76.00

3

2005 年 11 月 16 日

2005 年 11 月 17

悉尼

$ 87.00

4

2005 年 11 月 17

2005 年 11 月 18

Jakarta(雅加达)

$ 43.00

5

2005 年 11 月 17

2005 年 11 月 18

巴黎

$ 105.00

6

2005 年 11 月 17

2005 年 11 月 18

斯图加特

$ 112.00

7

2005 年 11 月 18

2005 年 11 月 19

维也纳

$ 215.00

8

2005 年 11 月 19

2005 年 11 月 20

迈阿密

$ 525.00

9

2005 年 11 月 20

2005 年 11 月 21

维也纳

$ 198.00

10

2005 年 11 月 20

2005 年 11 月 21

巴黎

$ 187.00

11

2005 年 11 月 21

2005 年 11 月 22

悉尼

$ 81.00

12

2005 年 11 月 23

2005 年 11 月 24

Jakarta(雅加达)

$ 92.00

订单明细表

明细 ID

Order ID

产品名称

产品 ID

单价

数量

折扣

1

1

构建您自己的键盘

12

$ 77.95

9

0.05

2

1

Bureaucrat 人像

2

$ 78.88

4

0.075

3

2

计算机进阶的练习 !DVD !

7

$ 14.88

6

0.04

4

2

神奇的计算机芯片

4

$ 32.65

8

0.00

5

2

计算机进阶和幻想世界

6

$ 78.50

4

0.00

6

3

访问 !游戏 !

5

$ 22.95

5

0.15

7

4

程序员操作图

1

$ 12.95

2

0.06

8

4

摄像头

8

$ 36.75

8

0.04

9

5

外部 5.25 英寸软盘驱动器 (1/4 缩放)

9

$ 65.00

4

0.10

10

6

关系数据库关系图

3

$ 22.50

12

0.065

11

7

黑夜

11

$ 53.33

6

0.08

12

7

关系数据库关系图

3

$ 22.50

4

0.09

计算简单的总计

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

  2. 显示表对话框中,双击您要在您的查询中使用的表,然后单击关闭

    如果您使用的示例数据,请双击订单表。

    在查询设计器的上半部分中窗口中出现的表。

  3. 双击要进行求和的字段。请确保该字段被设置为数字或货币数据类型。如果您尝试在非数字字段,如一个文本字段中的值进行求和对 Access 会在当您尝试运行查询时显示的数据类型不匹配条件表达式中的错误消息。

    如果您使用的示例数据,请双击运费列。

    如果您想要计算这些字段的总计,您可以其他数值字段添加到网格。总计查询可以计算多个列的总计。

  4. 设计选项卡上的显示/隐藏组中,单击汇总按钮图像

    显示在设计网格中的总计行和分组依据运费列中的单元格中显示。

  5. 总计行中的单元格的值更改为总和

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

    提示: 请注意,Access 会在追加"SumOf"开头的字段名称您求和。要更改为有意义的名称,如总运费的列标题,切换回设计视图,然后单击在设计网格中的运费列字段行。将光标放在运费和键入的单词的总运费后, 跟冒号,如下所示︰总运费︰ 运费

  7. (可选) 保存该查询并将其关闭。

计算不包括某些记录的总计

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

  2. 显示表对话框中,双击订单表和订单明细表中,,然后单击关闭以关闭对话框。

  3. 从订单表的订单日期域添加到查询设计网格的第一列。

  4. 在第一列中的条件行中,键入date ()-1。该表达式计算总计中排除当前日期的记录。

  5. 接下来,创建计算每个交易的销售金额的列。在字段行中的网格中的第二列中,键入以下表达式︰

    总销售额值: (1-[订单明细]。 [折扣] / 100) * ([订单明细]。 [单价] * [订单明细]。[数量])

    请确保您的表达式引用设置为数字或货币数据类型的字段。如果您在表达式引用设置为其他数据类型的字段,Access 会显示消息数据类型不匹配条件表达式中的,当您尝试运行查询。

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

    显示在设计网格中的总计行和分组依据的第一个和第二列中显示。

  7. 在第二列中,将中的总计行的单元格的值更改为SumSum函数将各个销售额相加。

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

  9. 每日销售额保存该查询。

    注意: 下次打开该查询,在设计视图中,您可能注意到总销售额列的字段汇总行中指定的值会略有变化。表达式出现在内部Sum函数,并总计行显示,而不是SumExpression

    例如,如果您使用的示例数据,并创建查询 (如前面的步骤中所示),您看到︰

    总销售额值︰ Sum ((1-[订单明细]。Discount/100) * ([订单明细]。单价 * [订单明细]。数量))

返回页首

通过使用总计查询计算组总计

本部分中的步骤解释如何创建总计查询以计算多组数据的分类汇总。执行操作时,请记住,默认情况下,仅或多个字段包含组数据,例如"类别"字段,以及包含要进行求和,如"销售额"字段的数据的字段,可以包括总计查询。总计查询不能包括其他描述类别中的项目的字段。如果您想要查看说明性数据,您可以创建第二个选择查询,它兼具总计查询中使用其他数据字段的字段。

本部分中的步骤解释如何创建总计,然后选择所需的标识每种产品总销售额的查询。这些步骤假设这些示例表的使用︰

产品表

产品 ID

产品名称

价格

类别

1

程序员操作图

$ 12.95

洋娃娃

2

有趣的 C# (适用于整个家庭版块游戏)

$ 15.85

游戏和测验

3

关系数据库关系图

$ 22.50

图片和摄影

4

神奇的电脑片 (500 片)

$ 32.65

图片和摄影

5

访问 !游戏 !

$ 22.95

游戏和测验

6

计算机进阶和幻想世界

$ 78.50

视频游戏

7

计算机进阶的练习 !DVD !

$ 14.88

Dvd 和电影

8

摄像头

$ 36.75

体育

9

外部 5.25 英寸软盘驱动器 (1/4 缩放)

$ 65.00

爱好和模型

10

Bureaucrat 人像

$ 78.88

洋娃娃

11

黑夜

$ 53.33

视频游戏

12

构建您自己的键盘

$ 77.95

爱好和模型

订单明细表

明细 ID

Order ID

产品名称

产品 ID

单价

数量

折扣

1

1

构建您自己的键盘

12

$ 77.95

9

5%

2

1

Bureaucrat 人像

2

$ 78.88

4

7.5%

3

2

计算机进阶的练习 !DVD !

7

$ 14.88

6

4%

4

2

神奇的计算机芯片

4

$ 32.65

8

0

5

2

计算机进阶和幻想世界

6

$ 78.50

4

0

6

3

访问 !游戏 !

5

$ 22.95

5

15%

7

4

程序员操作图

1

$ 12.95

2

6%

8

4

摄像头

8

$ 36.75

8

4%

9

5

外部 5.25 英寸软盘驱动器 (1/4 缩放)

9

$ 65.00

4

10%

10

6

关系数据库关系图

3

$ 22.50

12

6.5%

11

7

黑夜

11

$ 53.33

6

8%

12

7

关系数据库关系图

3

$ 22.50

4

9%

下面的步骤假定订单表和订单明细表中,具有关系的"一"端上的订单表中的产品 ID 字段之间的一对多关系。

创建总计查询

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

  2. 显示表对话框中,选择您想要处理,单击添加,然后单击关闭,将表格添加完后的表。

    -或-

    双击要使用的表,然后单击关闭。每个表都显示为查询设计器的上半部分中的一个窗口。

    如果您使用以前列出的示例表,您添加的产品和订单明细表。

  3. 双击您要在查询中使用的表字段。

    为一条规则,向查询添加仅组域和值字段。但是,您可以使用,而不是值字段计算 — 后面的步骤解释如何执行此操作。

    1. 从产品表的类别字段添加到设计网格。

    2. 创建,通过在网格中的第二列中键入下面的表达式计算每个事务销售额列︰

      总销售额值: (1-[订单明细]。 [折扣] / 100) * ([订单明细]。 [单价] * [订单明细]。[数量])

      请确保您在表达式中引用的字段的数字或货币数据类型。如果引用其他数据类型的字段,Access 会显示数据类型不匹配条件表达式中的错误消息,当您尝试切换到数据表视图。

    3. 设计选项卡上的显示/隐藏组中,单击汇总

      汇总行显示在设计网格中,并在该行中,分组依据显示第一个和第二列中。

    4. 在第二列中,更改要执行求和运算总计行中的值。Sum函数将各个销售额相加。

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

    6. 保留用于打开下一步部分中的查询。

      总计查询中使用条件

      上一节中创建的查询的基础表中包含的所有记录。它不在计算总计时, 排除按任何顺序和其显示的所有类别的总计。

      如果您需要排除某些记录,您可以向查询添加条件。例如,您可以忽略交易小于 $100 或仅有一些产品类别计算总计。本部分中的步骤解释如何使用三种类型的条件︰

    7. 计算总计时忽略某些组的条件。   例如,将计算只需视频游戏、 图片和框架,以及运动类别的总计。

    8. 计算它们后隐藏某些总计的条件。   例如,您可以显示大于 $150000 的总计。

    9. 排除个别记录总中所包含的条件。   例如,您可以排除各个销售事务时值 (单价 * 数量) 低于 ¥ 100。

      下面的步骤解释如何添加条件逐个并查看查询结果的影响。

      向查询添加条件

    10. 从设计视图中的上一节中打开查询。为此,请右键单击查询的文档选项卡,然后单击设计视图

      -或-

      在导航窗格中,右键单击查询,然后单击设计视图

    11. 在类别 ID 列条件行中,键入= 洋娃娃或体育画和框架或

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

    13. 切换回设计视图,并在总销售额列的条件行中,键入> 100

    14. 运行查询以查看结果,然后再切换回设计视图。

    15. 现在,添加要排除是小于为 ¥ 100 的各个销售事务的条件。若要执行此操作,您需要添加另一列。

      注意: 不能总销售额列中指定的第三个条件。此列中指定的任何条件适用于总计值,不能为单个值。

    16. 将从第二列的表达式复制到第三列中。

    17. 对于新的列中,选择位置,然后在条件行中,总计行中类型 > 20。

    18. 运行查询以查看结果,然后再保存该查询。

      注意: 下次打开该查询在设计视图中,您可能注意到设计网格中的略有更改。在第二列中,字段行中的表达式将出现在Sum函数,内部和总计行中的值显示表达式,而不是Sum

      总销售额︰ Sum ((1-[订单明细]。Discount/100) * ([订单明细]。单价 * [合计 r 详细信息]。数量))

      您还将看到第四列。此列的第二列的副本,但您在第二列中指定的条件实际上显示为新列的一部分。

返回页首

跨多个组使用交叉表查询的数据进行求和

交叉表查询是查询的一种特殊类型,以显示其结果类似于 Excel 工作表的网格中。交叉表查询汇总值,然后将其分组两组事实 — 沿侧面 (行标题的一组),另一个组顶端 (一组列标题)。下图显示了一部分的示例交叉表查询的结果集︰

示例交叉表查询

执行操作时,请记住交叉表查询不会始终填充结果集,因为在查询中使用的表不会始终包含每个可能的数据点的值中的所有字段。

当创建交叉表查询时,通常包括数据从多个表中,并且始终包含三种数据类型︰ 用作行标题的数据,作为列标题和值的总和或其他计算您要使用的数据。

本部分中的步骤假定下表︰

订单表

订单日期

发货日期

发货城市

运费

2005 年 11 月 14

2005 年 11 月 15 日

Jakarta(雅加达)

$ 55.00

2005 年 11 月 14

2005 年 11 月 15 日

悉尼

$ 76.00

2005 年 11 月 16 日

2005 年 11 月 17

悉尼

$ 87.00

2005 年 11 月 17

2005 年 11 月 18

Jakarta(雅加达)

$ 43.00

2005 年 11 月 17

2005 年 11 月 18

巴黎

$ 105.00

2005 年 11 月 17

2005 年 11 月 18

斯图加特

$ 112.00

2005 年 11 月 18

2005 年 11 月 19

维也纳

$ 215.00

2005 年 11 月 19

2005 年 11 月 20

迈阿密

$ 525.00

2005 年 11 月 20

2005 年 11 月 21

维也纳

$ 198.00

2005 年 11 月 20

2005 年 11 月 21

巴黎

$ 187.00

2005 年 11 月 21

2005 年 11 月 22

悉尼

$ 81.00

2005 年 11 月 23

2005 年 11 月 24

Jakarta(雅加达)

$ 92.00

订单明细表

Order ID

产品名称

产品 ID

单价

数量

折扣

1

构建您自己的键盘

12

$ 77.95

9

5%

1

Bureaucrat 人像

2

$ 78.88

4

7.5%

2

计算机进阶的练习 !DVD !

7

$ 14.88

6

4%

2

神奇的计算机芯片

4

$ 32.65

8

0

2

计算机进阶和幻想世界

6

$ 78.50

4

0

3

访问 !游戏 !

5

$ 22.95

5

15%

4

程序员操作图

1

$ 12.95

2

6%

4

摄像头

8

$ 36.75

8

4%

5

外部 5.25 英寸软盘驱动器 (1/4 缩放)

9

$ 65.00

4

10%

6

关系数据库关系图

3

$ 22.50

12

6.5%

7

黑夜

11

$ 53.33

6

8%

7

关系数据库关系图

3

$ 22.50

4

9%

下面的步骤解释如何创建交叉表查询总销售额进行按城市分组。查询使用两个表达式返回了格式的日期和销售额汇总。

创建交叉表查询

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

  2. 显示表对话框中,双击您要在您的查询中使用的表,然后单击关闭

    每个表都显示为查询设计器的上半部分中的一个窗口。

    如果您使用的示例表,双击订单表和订单明细表。

  3. 双击您要在查询中使用的字段。

    每个字段名称将出现在设计网格的字段行中的空白单元格。

    如果使用示例表,请从订单表中添加发货城市和发货日期字段。

  4. 字段行中的下一个空白单元格,复制和粘贴或键入以下表达式︰总销售额︰ Sum (CCur ([Order Details]。 [单位 Price]*[Quantity]*(1-[Discount])/100)*100)

  5. 在“设计”选项卡的“查询类型”组中,单击“交叉表”。

    汇总行和交叉表行显示在设计网格中。

  6. 单击汇总行中城市字段中的单元格并选择分组依据。执行相同的发货日期域。在总销售额字段的总计单元格的值更改为表达式

  7. 交叉表行中,设置为行标题城市字段中的单元格、 将发货日期域设置为列标题,和总销售额字段设置为值。

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

    在数据表视图中显示查询结果。

返回页首

聚合函数参考

此表列出并介绍了 Access 提供了总计行和查询中的聚合函数。请记住,Access 提供了更多聚合函数对查询比总计行。此外,如果您使用 Access 项目 (前端连接到 Microsoft SQL Server 数据库的访问权限),您可以使用 SQL Server 提供的聚合函数的较大的设置。有关该函数的设置的详细信息,请参阅 Microsoft SQL Server 联机丛书。

函数

说明

Us e 的数据类型

正常

计算列的平均值。列必须包含数字、 货币或日期/时间数据。该函数忽略空值。

数字、 货币或日期/时间

Count

计算列中的项目数。

所有数据类型,都除非复杂重复标量数据,例如多值列表的列。

有关多值列表的详细信息,请参阅文章多值字段指南添加或更改查阅字段,允许您存储多个值

最长时间

返回具有最高值的项目。对于文本数据,最大值是最后一个字母值-Access 不区分大小写。该函数忽略空值。

数字、 货币或日期/时间

最小值

返回值最低的项。对于文本数据,最小值是第一个字母值-Access 不区分大小写。该函数忽略空值。

数字、 货币或日期/时间

标准偏差

测量值中的平均值 (平均值) 附近分布的范围。

有关使用此函数的详细信息,请参阅在数据表中的显示列汇总一文。

数字、 货币

Sum

添加一列中的项。仅适用于数字和货币数据。

数字、 货币

差异

度量值的列中的所有值的方差。仅在数字和货币数据,您可以使用此函数。如果表包含小于 2 行,Access 将返回空值。

有关方差函数的详细信息,请参阅在数据表中的显示列汇总一文。

数字、 货币

返回页首

注释: 

  • 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

  • 请在 此处 中查找本文的英文版本以便参考。你和 Microsoft 社区的其他成员可以使用 Community Translation Framework (CTF) 来改进本文。只需将鼠标悬停在文章中的句子上,然后在 CTF 小组件中单击“IMPROVE TRANSLATION”即可。 单击此处了解有关 CTF 的详细信息。 使用 CTF 即表示你同意服务条款

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

此信息是否有帮助?

谢谢您的反馈!

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

×