📄 vfp6-3.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>第三节 建立交叉表查询</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<link rel="stylesheet" href="../../../cpcw.css"></head>
<body background="../../bg.gif">
<table width="85%" border="0" align="center">
<tr bgcolor="#FFFFFF">
<td>
<p align="center"><font color="#008000"><strong><br>
<font color="red">第三节 建立交叉表查询</font></strong></font></p>
<p align="left"><font color="#008000"><strong><br>
</strong></font><font color="#000000">我们在实际工作中常用到下面的一类表,</font></p>
<table border="1" width="100%">
<tr>
<td width="14%" align="center">系 所</td>
<td width="14%" align="center">教授</td>
<td width="14%" align="center">副教授</td>
<td width="14%" align="center">讲师</td>
<td width="14%" align="center">助教</td>
</tr>
<tr>
<td width="14%" align="center">中文系</td>
<td width="14%" align="center">86.00</td>
<td width="14%" align="center">85.12</td>
<td width="14%" align="center">76.23</td>
<td width="14%" align="center">85.00</td>
</tr>
<tr>
<td width="14%" align="center">历史系</td>
<td width="14%" align="center">85.00</td>
<td width="14%" align="center">79.36</td>
<td width="14%" align="center">78.25</td>
<td width="14%" align="center">86.58</td>
</tr>
<tr>
<td width="14%" align="center">材料学院</td>
<td width="14%" align="center">95.00</td>
<td width="14%" align="center">86.78</td>
<td width="14%" align="center">80.31</td>
<td width="14%" align="center">88.56</td>
</tr>
<tr>
<td width="14%" align="center">教科所</td>
<td width="14%" align="center">78.69</td>
<td width="14%" align="center">90.12</td>
<td width="14%" align="center">86.13</td>
<td width="14%" align="center">79.98</td>
</tr>
</table>
<p align="left"><font color="#000000"> 这个表左边第一列是不同系所,其右边各列的第一行是不同技术职务,其余是平均考核成绩。可见这个表反映了各系所不同技术职务人员的平均考核成绩。</font></p>
<p align="left"><font color="#000000"> 这样由左边、上边两个标头和右下角交叉数据构成的表我们称之为“交叉表”。这一节我们分别用查询设计器和查询向导建立交叉表查询。</font></p>
<p align="center"><strong><font color="#000000">3.1 用查询设计器建立交叉表查询</font></strong></p>
<p align="left"><font color="#000000"><strong> </strong>打开“查询设计器”,添加“职工表”。</font></p>
<p align="left"> 建立交叉表只能取三个字段,且其中一个是数值型字段作交叉数据,另两个是字符型字段,一个作为行标头,一个作为列标头。</p>
<p align="left"><font color="#000000"> 在“字段”选项卡中选取“所在部门”、“技术职务”二个字段添加到“选定字段”框中。从“表达式和函数”右侧的“表达式生成器”中生成平均成绩表达式:AVG(职工表.考核成绩),并将它也添加到选定字段中。如下图:</font></p>
<p align="center"><img src="d6-3-1.jpg" width="638" height="400"
alt="d6-3-1.jpg (766454 字节)"></p>
<p> 在“杂项”选项卡中只有在前面选定的字段为三个时,“交叉数据表”才有效,我们选择此复选框。如下图:</p>
<p align="center"><img src="d6-3-2.jpg" width="459" height="198"
alt="d6-3-2.jpg (273294 字节)"></p>
<p align="left"> 这时我们发现,“分组依据”选项卡中的“分组字段”和“排序”选项卡中的“排序条件”都已自行设置好,为“职工表.所在部门”和“职工表.技术职务”。如下图:</p>
<p align="center"><img src="d6-3-3.jpg" width="550" height="212"
alt="d6-3-3.jpg (350278 字节)"></p>
<p align="center"><img src="d6-3-4.jpg" width="595" height="218"
alt="d6-3-4.jpg (389838 字节)"></p>
<p align="left"> 而且,我们看到其中的设置项都为暗灰色,表明不可设置。这是因为在“杂项”中选择了交叉表查询,前面的几个选项卡中的必需信息都自动设置好,不能再行设置。如果想修改,则须去掉“杂项”中的“交叉表数据”复选框。</p>
<p align="left"> 一个简单的交叉表就这样完成了。</p>
<p align="left"> 在快捷菜单中单击“运行查询”,我们可以在“浏览”窗口中看到查询结果,如下图:</p>
<p align="center"><img src="d6-3-5.jpg" width="478" height="154"
alt="d6-3-5.jpg (221198 字节)"></p>
<p> </p>
<p align="center"><strong>3.2 用查询向导建立交叉表查询</strong></p>
<p> 下面我们用查询向导建立上面举例的查询,并建立一个统计技术职务人员在各部门的分布情况的查询。</p>
<p> 打开“文件”菜单,单击“新建”。</p>
<p> 在“新建”窗口中选择“查询”并单击“向导”。</p>
<p> 在向导选取中单击“交叉表向导”。按“确定”进入“步骤1-字段选取”。</p>
<p align="center"><img src="d6-3-6.jpg" width="490" height="359"
alt="d6-3-6.jpg (528502 字节)"></p>
<p align="left"> 我们选取“所在部门”、“技术职务”“考核成绩”。这一步无法建立平均成绩的表达式。按“下一步”按钮,进入“步骤2-定义布局”,如下图:</p>
<p align="center"><img src="d6-3-7.jpg" width="491" height="359"
alt="d6-3-7.jpg (529938 字节)"></p>
<p align="left"> 在这一步里,我们想将“技术职务”字段的内容作为每列的标头,将“所在部门”字段的内容作为每行的标头。因此,我们单击“所在部门”字段,并将它拖动到“行”空白区放开,这时空白区被灰色填充且显示“所在部门”。同样,我们将“技术职务”字段拖动到“列”空白区,将“考核成绩”字段拖动到“数据”空白区。做完这些操作后,“下一步”按钮将成为可选按钮,单击它进入“步骤3-加入总结信息”。</p>
<p align="center"><img src="d6-3-8.jpg" alt="d6-3-9.jpg (524130 字节)" width="490"
height="359"></p>
<p align="left"> 通过从“总结”和“分类汇总”区域选择合适的单选按钮,可以添加一个包含总结信息和小计的列。总和将出现在交叉表查询结果中的最右列内。我们在“总结”框内选择“平均值”,它相当于“AVG(职工表.考核成绩)”,在“分类汇总”框内选择“无”。单击“下一步”按钮进入“步骤4-完成”。</p>
<p align="center"><img src="d6-3-9.jpg" width="493" height="358"
alt="d6-3-9.jpg (529894 字节)"></p>
<p align="left"> “显示NULL值”指在无数据处显示NULL。使用NULL 值是为了说明这样一种情况:在字段或记录里的信息目前还无法得到。例如,如果一名雇员的保健津贴或税收状况在填写记录时还不清楚,那么,与其存储一个可能产生歧义的零或空格,则不如在字段中存储NULL值,直到存入有实际意义的信息为止。这里,我们去掉选择,即不显示NULL值。我们按“预览”按钮可以看到和上面用查询设计器建立的查询完全一样。</p>
<p align="left"> 如果我们在“步骤3-加入总结信息”里选择“计数”和“数据求和”,如下图:</p>
<p align="center"><img src="d6-3-8.jpg" width="490" height="359"
alt="d6-3-8.jpg (528502 字节)"></p>
<p> 则完成的查询如下图:</p>
<p align="center"><img src="d6-3-11.jpg" width="550" height="158"
alt="d6-3-11.jpg (261070 字节)"></p>
<p align="left"> 我们可以看到,在最后一列出现了一个“总和”的列,它将每行的数据进行求和(这是上步“数据求和”的结果)。而且,数据区内不再显示考核成绩,而是显示人数(这是上步“计数”的结果)。这个查询显示了技术职务人员在各部门的分布情况。</p>
<p align="left"> 从上面的例子,我们看到建立交叉表有时用查询设计器比较方便,有时用查询向导比较方便。例如,在需要“总和”数据时,查询设计器不易实现,用查询向导则易于实现;而在建立如“图书表.定价*订货表.订货数量*0.75”的表达式数据时,则正好相反。</p>
<p align="right"><a href="vfp6.htm">返回</a> <a href="vfp6-2.htm">上一节</a>
<a href="vfp6-4.htm">下一节</a></p>
<p align="center"><a href="http://www.cpcw.com">电脑报首页</a> <a href="../../index.htm">网络学院首页</a></p>
</td>
</tr>
</table>
<p align="center"> </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -