在本章中,我们将介绍如何在Access中的一组记录上进行计算。我们创建了一个字段,用于计算逐行或按记录创建行总计或小计字段,但如果我们想要按照一组记录而不是单个记录计算。我们可以通过创建所谓的聚合查询来实现。
聚合查询
聚合查询(也称为总计或汇总查询)是总和,质量或组详细信息。它可以是总金额或总金额或记录的组或子集。聚合查询可以执行多个操作。这里有一个简单的表,列出了一组记录的总计的一些方法。
序号 | 聚合函数和描述 |
---|---|
1 |
Sum 添加字段值 |
2 |
Avg 平均字段值 |
3 |
Min 最低(最小)字段值 |
4 |
Max 最高(最大)字段值 |
5 |
Count 计数值(记录) |
6 |
StDev 字段值的标准偏差,包括日期/时间字段 |
7 |
Var 字段值的变化,包括日期/时间 |
让我们打开数据库,转到查询设计,并包括以下表 -

关闭此对话框,将显示以下两个字段,如以下屏幕截图中的查询网格所示。

这是一个简单的查询,我们只显示两个字段 - 书名和数量,当我们运行它时,我们在数据库中看到每个单独的订单。
现在让我们来运行此查询,您将看到以下结果。

这就是为什么书名重复。这里的每本书都有单独的订单,订单数量不同。让我们假设我们只想看到一个只列出一次的书名的摘要。然后在它旁边列出的数量的总和。
现在让我们转到设计视图,在设计选项卡中,您将看到一个西格玛符号。这是您的总计按钮。

单击将在表行中的字段下方打开另一行的sigma符号,并从此处指定如何对此查询进行分组。

我们现在将按照书名分组,并总计我们的数量字段。
如果我们点击按区域分组并进一步点击下拉菜单,所有的选项将被列出。在这种情况下,我们将选择Sum,然后运行查询。

您现在可以查看每本单独的书籍,以及书名旁边显示的所有单个订单。

串联在访问
我们学习了归一化的过程,将信息存储在单独的字段中。有时您想要一起查看或查看数据,例如将名字和姓氏字段组合为单个字段。您可以通过创建并置一个或多个字符串的计算字段来一起显示该信息。您还可以添加其他字符,如逗号或句点,你可能想要的。
要在Access中连接,有两个不同的运算符,您可以使用&符号(&)和加号(+)符号。
&符号将两个字符串合并为一个,而加号将组合两个字符串并传播NULL值,例如,如果一个值为NULL,则整个表达式将求值为null。
例子
让我们举一个简单的例子来理解使用查询设计创建新查询的过程。这将是一个非常简单的查询,从客户的表中提取信息。
现在,让我们添加tblCustomers表关闭显示表对话框。我们将尝试一些与一些简单的命名字段的连接。

现在,让我们添加名字和姓氏字段并运行查询。
如您所见,名字和姓氏分为两个不同的字段。

我们需要共同显示这些信息。

返回设计视图,在第三个字段中创建一个名为全名的新字段。现在,添加全名并键入将这两个字段连接在一起的表达式。

让我们运行查询,您将看到一个新的计算字段。

它可以将来自这两个字段的信息连接在一起,但它并不完全按照我们想要的方式显示。它运行所有的文本在一起,因为它执行我们要求的方式。我们现在必须要求Access在这两个字段的信息之间添加空格。
现在让我们回到设计视图,并向此表达式添加另一个部分。
在引号和另一个&号内添加空格。这使得Access从该名字字段获取信息;用空格添加它,然后在最后添加姓氏字段中的信息。现在,再次运行查询,您将看到以下结果。