假设已有如表一的“车队运输”表,有“司机、货物类别、毛重、皮重”字段。我们将以它为原始数据,通过查询对数据进行计算和统计。 表一 原始的车队运输表
司机
货物类别
毛重
皮重
李大方
其他
75.00
25.00
赵美丽
其他
75.00
25.00
张可爱
其他
150.00
50.00
赵美丽
精粉
19.70
5.40
张可爱
精粉
20.70
5.40
张可爱
精粉
20.60
5.40
张可爱
矿石
19.60
5.40
张可爱
精粉
20.60
5.40
张可爱
精粉
21.10
5.40
张可爱
矿石
21.20
5.40
李大方
精粉
17.40
5.40
赵美丽
废石
120.00
40.00
赵美丽
其他
15.00
5.00
李大方
废石
105.00
35.00
张可爱
废石
105.00
35.00
赵美丽
废石
105.00
35.00
1. 用选择查询建立计算字段
建一个选择查询,添加“车队运输”表,将其所有字段拖拽到设计网格中。如图一所示,只要在空白列中填写“净重:毛重-皮重”,系统会自动为“毛重”和“皮重”加上“[ ]”,表示它们是字段。把这个查询保存为“车队运输查询”。
下面的表格就是刚制作的车队运输查询,净重是自动计算的:
车队运输查询
司机
货物类别
毛重
皮重
净重
李大方
其他
75.00
25.00
50.00
李大方
其他
135.00
45.00
90.00
赵美丽
其他
75.00
25.00
50.00
张可爱
其他
150.00
50.00
100.00
赵美丽
精粉
19.70
5.40
14.30
张可爱
精粉
20.70
5.40
15.30
张可爱
精粉
20.60
5.40
15.20
张可爱
矿石
19.60
5.40
14.20
张可爱
精粉
20.60
5.40
15.20
张可爱
精粉
21.10
5.40
15.70
张可爱
矿石
21.20
5.40
15.80
李大方
精粉
17.40
5.40
12.00
赵美丽
废石
120.00
40.00
80.00
赵美丽
其他
15.00
5.00
10.00
李大方
废石
105.00
35.00
70.00
张可爱
废石
105.00
35.00
70.00
赵美丽
废石
105.00
35.00
70.00
2.用选择查询进行分组数据的计算
建立一个选择查询,添加“车队运输查询”,将其中的“司机、货物类别、净重”字段拖拽到设计网格。
单击工具栏的“总计”按钮,则设计网格中增加了总计行,再如图把司机和货物类别列的总计设置成“Group By”(保持不变即可),净重列的总计设置成“Sum”,意思就是根据司机和货物类别字段分组对净重进行总和的计算。
生成的查询效果如下表所示:
按司机和货物类别分组的查询
司机
货物类别
运输总量
李大方
废石
170.00
李大方
精粉
1715.40
李大方
矿石
13.50
李大方
其他
310.00
王潇洒
废石
18.50
王潇洒
精粉
922.30
王潇洒
矿石
15.90
王潇洒
其他
21.30
张可爱
废石
310.00
张可爱
精粉
1601.90
张可爱
矿石
94.20
张可爱
其他
340.00
赵美丽
废石
790.00
赵美丽
精粉
1537.40
赵美丽
矿石
21.60
赵美丽
其他
420.00
3.用交叉表查询体现一组数据的对比
新建查询,选择“交叉表查询向导”,接着选择“车队运输查询”,出现上面的对话框,从可用字段中选择“司机”字段作为行标题。单击下一步。
接着从字段中选择“货物类别”作为列标题。单击下一步。
选择“净重”字段,函数选择“求和”,最后为这个交叉表查询起一个名字,向导结束。
上图是刚生成的查询的设计视图。
下表是交叉表的查询结果,清晰地对比了每个司机运输各种货物的数量。
车队运输查询——交叉表
司机
废石
精粉
矿石
其他
总计
李大方
170.00
1715.40
13.50
310.00
2208.90
王潇洒
18.50
922.30
15.90
21.30
978.00
张可爱
310.00
1601.90
94.20
340.00
2346.10
赵美丽
790.00
1537.40
21.60
420.00
2769.00
4.在查询中执行计算的注意事项
如果要在字段中显示计算的结果,可以使用 Microsoft access 所提供的预定义计算或自定义的计算。使用所谓“总计”的预定义计算,可计算出记录组或全部 记录的下列量值:总和(Sum)、平均值(Avg)、数量(Count)、最小值(Min)、最大值(Max)、 标准偏差(StDev)或方差(Var)。可以对每个字段选择要进行的总计计算。
合计函数 Count 在计算时不能包括有空值 (Null) 的记录。例如,Count 函数返回所有 无 Null 值记录的数量。有一种方法可以对 Null 值进行计数,另外也可以将 Null 值转换为零以便进行计算。如果要查找包含 Null 值的记录总数,请在 Count 中使用用 星号 (*) 通配符。
在字段中显示计算结果时,结果实际并不存储在基准窗体中。相反,Microsoft access 在每次执行查询时都将重新进行计算,以使计算结果永远都以数据库中最新的数据为准。因此, 不能人工更新计算结果。
在总计列中的其他值的含义:Group By定义要执行计算的组,将记录与指定字段中的相等值组合成单一记录。Expression创建表达式中包含合计函数的计算字段。通常在表达式中使用多个函数时,将创建计算字段。Where指定不用于分组的字段准则。如果选定这个字段选项,Microsoft access 将清除“显示”复选框,隐藏查询结果中的这个字段。First指定第一个记录。Last指定最后一个记录。
信息来源:http://www.office-faq.cn/office/5/office7941.htm