收藏 分销(赏)

Access数据库技术及应用-高职-计算机第4章字段的计算方法.docx

上传人:二*** 文档编号:4518662 上传时间:2024-09-26 格式:DOCX 页数:14 大小:488.82KB 下载积分:5 金币
下载 相关 举报
Access数据库技术及应用-高职-计算机第4章字段的计算方法.docx_第1页
第1页 / 共14页
本文档共14页,全文阅读请下载到手机保存,查看更方便
资源描述
(1)用“预定义计算”方式设置字段 例题4. 3要求针对按部门所作的分组进行记 录组数量计算,这里我们先采用“预定义计算” 的方法。因为这三个字段都是针对大修费用的计 算,所以我们先把这三个字段都添加为“dx”表 的“费用”字段。如图4. 20所示。 国查询1O 回 次 图4.20 添加三个“dx”表的“费用”字段对于“总计”计算,我们可以用“简单查询 向导”来完成,但它只能进行某些类型的总计计 算;而如果选用查询设计网格中的“总计:”行来 进行,那么可以进行全部类型的总计计算,但要为 进行计算的字段选择聚合函数。 那么,怎么在查询设计网格中添加“总计:”行呢?我们需要先激活查询设计视图,这时通过 续表注:“expression”代表一个字符串表认式,它标识了包含要计算的数据的字段,或者是使用该字 段中的数据执行计算的表认式" “expression”中的操作数可包括表字段、常量或函数(可以 是固有的或用户白宗义的函数,但不能是其他SQL聚合函数)的名称. Count Count (expression) 计算杳询所返问的记录数c尽管expression能够对字段执行计算. 但是Count仅仅计算出记录的数目0记录中所存储的数值类型与 计算无关c Count函数不统计包含Null字段的记录,除非expression是 星号(*)通配符0如果使用了星号通配符.Count会计算出包括 Null字段在内的所有记录的数0 . Min Min (expression) 返回包含在杳询的指定字段内的一组值中的最小值. Max Max (expression) 返P1包含在杏血的指定字段内的一组值中的最大值C 根据例题4.3的要求,除了 “部门”字段, 其余三个字段都需要构造表达式。添加“部门” 字段之后,在“字段」行的第二列右击键,在弹 出的快捷菜单中选择“生成器”或在“设计”选 项卡的“查询设置”组中单击“生成器”,都会弹 出“表达式生成器: 要统计各部门的大修费用总和,首先在“表 达式生成器”中选择Sum (expression)函数, 此时,“表达式生成器”的“表达式”框中显示为 “各部门大修费用总和:表达式 Sum (expression)^;然后,单击“表达式”,按Del 键删除,再单击Sum函数中的“expression”; 接下来,在“表达式元素”资源列中选择“设 备.accdb”下“dx”表的“费用”,双击“表达式 值”列表下的“〈值〉工构造出第二列的计算字段,并为它设置列标题“各部门大修费用总和”,单击 “确定”按钮,如图4. 28所示。 并为它设置列标题“各部门大修费用总和”,单击 “确定”按钮,如图4. 28所示。 图4. 28 幺部门大修冷闺强和 如果对表达式构造比拟熟悉,还可以直接在 “字段」行输入某个计算字段的表达式。类似 的,我们设置好所有字段,如图4. 29所示字排显条 字排显条 照表序示件或 各都门大修费用最高值:[费用]) 各部门大修责用最低值:lhn([dx]][贾用])三 51 a ▲ 各部门大修置用总和:Swn ([dx][[索用]) 图4.29 各计算字段的设置 设置好所有的字段表达式,还不能完成例题4. 3的要求,因为还不能按照“部门”进行分组, 这样后面的计算字段也就没有了用武之地。按照 “预定义计算”的方法,先对“部门”字段在“总 计:”行进行分组。注意,这时其余的三个字段就 不能再按照以前的方式进行设置了。 如果表达式中包含一个或多个聚合函数(总 计、平均值、计数、最小值、最大值、标准差或 方差),而且如果设计网格包含另一个或多个用 于分组的字段时,我们这样处理:对分组字段, “总计:”单元格中保持为"Group By”,而在计 算字段中,将"Group By”更改为“Expression”。 所以,其余三个字段在“总计:”行的设置均为 “Expression”,如图 4. 30 所示。 图4. 30"自定义计算”方式中设定分组字段这时运行查询,我们会发现两种方法得到的结果 是完全一样的。 表达式的构造是“自定义计算”方法中非常 重要的环节,在建立表达式时,需要注意以下事 项: ①字段包含在一对方括号(口)中。例如: [售价]* [销售量]。 ②常数字符串包含在一对双引号中。例如: [员工姓名]& 〃先生/小姐〃。 图4.30 ”自定义计算”方式中没宗分组字段 ③日期时间包含在一对“井"字号(#)中。 例如:#1994 / 1 / 10 例 10: 20# +10。 ④也可使用运算符“ & ”或“ + ”来联接文字 类型字段或文字字符串。例如:〃收信人地址:〃 & [邮政编码]& [住家地址]或〃收信人地址: 〃+ [邮政编码]+ [住家地址, 点击“设计”选项卡中“汇总”,就可以在设计网 格中显示“总计」行。默认所有字段在“总计:” 行的初始设置均为“Group By”(分组),如图4. 21 所示。 字忌排异至 段表计序示件或 费用 dx Group By 国 费用 dx Group By 费用 dx Group By 立 值值值 V □ First L<xtExpression Where图4.21 显示'‘总计:”行 从图4.21我们可以看出,“总计:”行的计算功能比拟多,主要由聚合函数组成。关于查询 设计网格“总计:”行中的聚合函数及其他选项请 详见表4.2和表4.和 表4.2“总计:”行中的聚合函数 洗项 功能说明 可使用字段数据类型 合计 求字段值的总和 数字、日期/时间、货币和自动编号 平均值 求字段的平均值 数字、日期/时间、货币和自动编号 最小值 求字段的最小值 文本、数字、日期/时间、货币和自动编号 最大值 求字段的最大值 文本、数字、日期/时间、货币和自动编号 计数 求字段值的个数,不包括 Null 值 文本、备注、数字、日期/时间、货币、自动编号、 杲/否和OLE对象 StDev (标准差) 求字段的标准差值 数字、日期/时间、货币和自动编号 变tt 求字段的方差值 数字、日期/时间、货币和自动编号 表4.3“总计:”行中的其他诜项 洗项 功能说明 First (第一条记录) 返网所执行计算的组中的第一个记录 Last (最后一条记录) 返回所执行计算的组中的最后一个记录 Group By (分组) 宗义要执行计算的组(例如,如果要按类别显示销售额总计,应对“类别 名称”字段诜择“分组”) Expression (表达式) 创律在其表认式中包含聚合函数的计算字段(诵常在表认式中使用多个函 数时,创立计算字段) Where (条件) 指定不用干定义分组的字段条件(如果选中这个字段诜项,Access膈清 除“显示”复选框,隐藏杳询结果中的这个字段) 注意:“First”函数和“Last”函数按记录 输入的时间顺序返回第一个记录或最后一个记 录。对记录进行排序并不影响这些函数。 综合以上分析,例题4. 3中的“部门”字段 是要进行分组的字段,所以它的“总计」行设为 "Group By”。在按“部门”分组的情况下,其余 的三个“费用”字段分别要来计算各组的费用总 和、费用最高值和费用最低值。所以,剩余三个字 段的“总计:”行分别设为“合计”、“最大值”和 “最小值”,如图4. 22所示。 这时我们切换至“数据表视图”或者单击“运 行”,就会看到查询的结果,如图4. 23所示。 从查询结果中不难看出,某个字段如果进行了计算,那么它在查询结果中对应的列标题就会发 生变化,但是系统自动处理的名称并缺乏以说明 这个字段确实切含义,所以,还需对字段名称加 以修饰。 默认情况下,查询结果中每列的标题就是这 列的字段名称,但是假设字段进行了计算,或在字段中使用了表达式,那么列标题就会由Access自 动命名。这个新的名字只是在显示查询结果的时 候才出现,它并不是真正的字段名。如果对查询 结果中显示的列标题不满意,我们可以为它设置 身查询1 a E S3 新的标题栏名称。如图4. 24所示。 图4.22“总计:”行的设置 国查询1O 回 应 部门*11费用之合计▼ 111592 - 费用N最大▼ 1000 费用之最小, 92 12 21 80 280 80 280 80 280 ia>: Y 4 a 1项供3项) a无标透器 图4. 23运行结果 a 0 S3 部门 各部门大修费用总和 sb dx Group By 合计 0 H 1 部门 各部门大修费用总和 sb dx Group By 合计 0 H 1 各部门大修费用最高1费用 最大值 mi 段表计序示件或 字总播显条 dx 最小值 痛放 各部门大修费用最低值费用 X V 字体任).. I 图4.24 为字段设置列标颍 用鼠标单击要设置的字段名称,当光标进入 字段名所在的组合框时,按照“列标题名称:字段 名”的格式在原来的字段名前面输入新的列标题 即可。如果对组合框的输入空间不满意,还可以 按“Shift+F2”键,进入“缩放”对话框,在对话框中编辑好列标题后,单击“确定”按钮即可。 这时的查询结果如图4. 25所示。 图4.25 字段设置列标撅后的杳血结果 从图4. 25中我们还可以发现一个问题:并不是所有部门的统计信息都显示在查询结果中。 例如:部门为“22”和“23”的统计信息就不存 在。事实上,这样的查询结果并不能代表所有部 门的统计结果。 发生这种情况的原因在于两表之间关系的 联接类型取的是默认内部联接。“ sb ”表和“ dx” 表之间具有关系,它们的联接条件是“sb 编号 =dx 编号力我们把两表中的“编号”字段称为 联接字段,“sb”表和“dx”表分别称为左表和右 表。 在Access数据库中联接类型包括三种: ①内部联接:只有当两表联接字段中的值符合指定条件时,两个表的记录才会组合在一个查 询结果中。在查询中,默认的联接是内部联接。 ②左外部联接:在这种外部联接中,即便左 表的联接字段在右表的联接字段中没有找到匹 配值,所有来自左表的记录也都将添加到查询的 结果中。 ③右外部联接:在这种外部联接中,即便在 左表的联接字段中没有匹配值,所有来自右表的 记录也都将添加到查询的结果中。 我们现在的查询联接类型是默认的内部联 接,以部门“23”为例,这个部门的两个设备的 编号在“dx”表中根本不存在,自然也就不能满 足联接条件,所以这两条记录就都不能出现在查 询结果中,也就没有了部门“23”的统计信息。 我们可以通过更改联接类型来到达要求。双击表或查询的字段列表之间的联接线,在“联接 属性”对话框中,单击所需的联接选项,然后单 击“确定”按钮即可,如图4. 26所示。 从图4. 26可以看出,“sb”表为左表,要想保存左表的记录全部出现在查询结果中,需把联 接类型选为“2二这时再来运行查询,可以看出 所有部门的统计信息都出现在查询结果中,只不 过部门为“ 22 ”和“ 23 ”的设备都没有大修记录, 所以对应的统计结果为空。查询结果如图4. 27所 ZjS O 以上我们通过“预定义计算”的方式完成了 例题4. 3的字段设置,下面说明如何采用“自定 义计算”的方式来完成相同功能的字段设置。 国查询10回 次 左袤名称(L) 联接雇性 右袤名称®) 12 3 o@o 12 3 o@o 段表计序示件或 字总排显条 sb dx 左列名称(C)右列名称9) 编号鬲 编号i V 只包含两个表中联接字段相等的行。 包括“ sb”中的所有记录和“ dx”中联接字段相等的那些记录。 包括“七”中的所有记录和“sb”中联接字段相等的那些记录。 确定取消 新建(H) 图4. 26 修改表间关系的联接类型 图4. 27 左外部联接杳询结果 ⑵用“自定义计算”方式设置字段 “自定义计算”其实就是根据需要用一个或 多个字段数据写成表达式,然后在“字段「行的 空单元格中键入该表达式,从而创立新的计算字 段来作为查询结果中的一个新的字段列,这个表 达式的计算方法作用在所有的记录或记录组上。 要想构造计算字段的表达式,我们除了应用以前介绍的Access支持的各种运算量和运算符 之外,更多使用的是SQL聚合函数。通过SQL聚 合函数,可以确定数值集合的各种统计值。其实, 我们刚刚介绍的“总计:”行中使用的聚合函数就 是我们所说的SQL聚合函数,只不过,在“总计:” 行中没有看到具体的函数表达式。下面介绍几个 常用的聚合函数,参见表4.4。 表4.J 几个常用的聚合函数 函数 格式 功能说,明 Avg Avg (expression) 计算在杳泡的指定字段中所包含的一组值的算术平均值(值的总和 除以值的数目).在计算中.Avg函数不能包含任何Null字段. Sum Sum (expression) 返回在杳询的指定字段中所包含的一组值的总和. Sum函数将忽 略包含Null字段的记录.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服