Access 2003完整教程:关于查询中的计算 (MDB)

注释本主题中的信息仅适用于 Microsoft Access 数据库 (.mdb)。

在查询中可执行许多类型的计算。例如,可以计算一个字段值的总和或平均值,使两个字段的值相乘,或者计算从当前日期算起三个月后的日期。 要在查询中执行计算,可以使用:

在字段中显示计算结果时,结果实际并不存储在基础表中。相反,Microsoft Access 在每次执行查询时都将重新进行计算,以使计算结果永远都以数据库中最新的数据为准。因此,不能手动更新计算结果。

使用聚合函数的预定义计算

如果要在字段中显示计算的结果,可以使用 Access 所提供的预定义计算或自定义的计算。使用称为聚合函数的预定义计算或“总计”,可计算出所有记录或记录组的下列量值:总和、平均值、计数、最小值、最大值、标准偏差或方差。可以对每个字段选择要进行的总计计算。

显示在查询中的计算

标注 1所有记录上的计算

标注 2组记录上的计算

可以用“简单查询向导”来进行某些类型的总计计算,或者用查询设计网格中的“总计”行来进行全部类型的总计计算,其中需要为进行计算的字段选择聚合函数。

在查询设计网格中,也可以指定影响计算和产生不同查询结果的条件。通过添加条件,可以限制:

关于在查询设计网格“总计”行中的聚合函数与其他选项

聚合函数

在查询设计网格的“总计”行中的下列选项是聚合函数:

选择查找使用下列字段数据类型
总和字段值的总和。数字、日期/时间、货币和自动编号
平均值字段的平均值。数字、日期/时间、货币和自动编号
最小值字段的最小值。文本、数字、日期/时间、货币和自动编号
最大值字段的最大值。文本、数字、日期/时间、货币和自动编号
计数字段值的个数,不包括Null(空)值。文本、备注、数字、日期/时间、货币、自动编号、是/否和 OLE 对象
标准偏差字段的标准偏差值。数字、日期/时间、货币和自动编号
方差字段的方差值。数字、日期/时间、货币和自动编号

“第一条记录”和“最后一条记录”函数

使用第一条记录最后一条记录函数返回所执行计算的组中的第一个或最后一个记录。这些函数按记录输入的时间顺序返回第一个记录或最后一个记录。对记录进行排序并不影响这些函数。

分组依据、表达式或 Where 选项

下表介绍每个选项的使用范围:

选择若要
分组依据定义要执行计算的组。例如,如果要按类别显示销售额总计,请对“类别名称”字段选择“分组依据”。
表达式创建在其表达式中包含聚合函数的计算字段。通常在表达式中使用多个函数时,将创建计算字段。
Where指定不用于定义分组的字段条件。如果选中这个字段选项,Access 将清除“显示”复选框,隐藏查询结果中的这个字段。

自定义计算和计算字段

使用自定义计算,可以用一个或多个字段的数据对每个记录执行数值、日期的和文本计算。例如,使用自定义计算,可以将某一字段值乘上某一数量、找出存储在不同字段中的两个日期间的差别、组合“文本”字段中的几个值,或者创建子查询。使用设计网格“总计”行中的选项,就可以对记录组执行计算,并对计算字段计算出总和、平均值、计数或其他类型的总和。

对于自定义计算,必须直接在设计网格中创建新的计算字段。创建计算字段的方法是:将表达式输入到查询设计网格中的空“字段”单元格中。

查询设计网格中的计算字段

如下例所示,表达式可以由多个计算组成:

Sum([库存量]+[订货量])

也可以指定计算字段的条件来影响计算的结果。

但是,不必在字段中显示计算的结果。相反,可以将它们用作条件,以决定查询选择的记录或决定要执行操作的记录。例如,可以在“条件”行中指定下面的表达式来告知查询:只返回从今天算起到三个月后的日期之间,“要求日期”字段中有值的记录。

定义检索记录条件的计算

使用计算来更新数据

也可以用计算来更新查询中的数据。例如,可以在“更新到”单元格中输入下列表达式,将所有“单价”字段的值提高 5 个百分点。

更新数据的计算

处理计算中的 Null 值

聚合函数在其计算过程中不会包括含有空 (Null) 值的记录。例如,Count函数将返回所有无Null值的记录的数量。如果要查找包括含有Null值的记录在内的记录总数,请在Count表达式中使用星号 (*) 通配符。

Count(*)

在使用其他聚合函数时,要计算Null值,请使用Nz函数,该函数将Null值转换为零,这样这些值就可以包含在计算中了。

FreightPercentage: Sum(Nz([Freight], 0)) / Sum(Nz([Subtotal]), 0) * 100

如果在表达式中使用算术运算符(+-*/),且表达式中某一字段的数值为Null,则整个表达式的结果将为Null。如果在使用的表达式中,某一字段的部分记录具有Null值,可以利用Nz函数将Null值转换为零,如下例所示:

Nz([UnitsInStock], 0) + Nz([UnitsOnOrder], 0

上页:Access 2003完整教程:调试 Visual Basic 代码 下页:Access 2003完整教程:创建 Access 数据库

Access 2003完整教程:关于查询中的计算 (MDB)

Access 2003完整教程:创建 Access 数据库Access 2003完整教程:创建报表
Access 2003完整教程:创建表 (MDB)Access 2003完整教程:创建删除查询 (MDB)
Access 2003完整教程:创建筛选 (MDB)Access 2003完整教程:设计启动 Access 的命令行选项
Access 2003完整教程:设置字段或控件中数据的显示格式 (MDB)Access 2003完整教程:设置字段或控件中显示的小数位数 (MDB)
Access 2003完整教程:设置字段或控件的默认值 (MDB)Access 2003完整教程:从表中删除字段 (MDB)
Access 2003完整教程:使用快捷键编辑文本或数据Access 2003完整教程:在宏的操作参数中输入表达式
Access 2003完整教程:向已有的超链接地址中输入超链接Access 2003完整教程:查询和筛选中所用表达式的示例
Access 2003完整教程:导出数据或数据库对象Access 2003完整教程:表达式的示例
Access 2003完整教程:在字段中查找或替换值Access 2003完整教程:Access 2003 入门
Access 2003完整教程:导入或链接数据和对象Access 2003完整教程:Access 规格
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号