假设已有如表一的“车队运输”表,有“司机、货物类别、毛重、皮重”字段。我们将以它为原始数据,通过查询对数据进行计算和统计。
表一 原始的车队运输表
司机 |
货物类别 |
毛重 |
皮重 |
李大方 |
其他 |
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.
2.
3.
4.
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 |
指定最后一个记录。 |