第二节 建立多表查询
下面几节中,我们一起来建立一个几个查询。由于建立单表查询及分组查询的方法和在视图设计器中建立相应视图类似,而且比较简单,不再举例了。本节建立一个多表查询。
2.1 为举例作准备--建立“图书订货库”
为了以后举例的方便,我们再建立一个“图书订货库”,它包括图书表、订货表、客户表三个表。分别将图书表.书名、客户表.客户名称设置为主索引,将订货表.书名和客户名称设置为普通索引,并且在各表之间建立关联。如下图:

在图书表中输入数据(所有数据为随意设置,不做实际参考),如下图:

在订货表中输入数据,如下图:

在客户表中输入内容,如下图:

2.2 建立多表查询
我们建立这个多表查询的目的是查询“客户名称”为新华书店的订货信息。
我们看到,图书订货数据库中图书表和客户表是多对多关系,即一种书可由多个客户订购,一个客户可订购多种书。而图书表和订货表、客户表和订货表都是一对多关系。
我们打开“文件”菜单,单击“新建”,选择“查询”并单击“新件文件”按钮,进入查询设计器。在“添加表或视图”窗口中依次将“图书订货库”的图书表、订货表和客户表加入到表设计器。如下图:

由于我们在“图书订货库”中建立了表间永久关系,因此在添加的表之间自动产生关联。
注意:如果我们添加了图书表后接着添加客户表,由于我们在数据库中未建立两表的直接关联,便会弹出一个“联接条件”对话框,要求加入联接条件,我们不需要这两表建立直接关联,按“取消”按钮即可。如下图:

我们需要了解的项目有客户名称、订购的书名、每本书的定价、订货数量、每种书的预付款总额、客户联系电话,联系人等。因此我们在“字段”选项卡中选择加入相应的字段。
其中的每种书预付款总额没有与之相应的字段,需要在“函数和表达式”文本框中建立。单击文本框右侧的三点按钮,进入“表达式设计器”,通过选择或输入,在“表达式”框中建立表达式“图书表.定价*订货表.订货数量*0.75",其中的0.75指当一次性交清款,将按75折给予优惠。如下图:
[NextPage] 按“确定”按钮关闭表达式生成器。这时在查询设计器中的“表达式和函数”文本框中出现刚才建立的表达式,按“添加”按钮,将表达式加入“选定字段”,并用垂直双向箭头调整字段输出的顺序。如下图:

在“联接”选项卡中我们取默认的内部联接。由于要查询的是各表之间的匹配记录,因此在为各表间的联接都要为内部联接。如下图:

在“筛选”选项卡中设置筛选条件。一种条件可以有几种表示方法,如何设置根据个人习惯。筛选条件和上面的联接条件类似,两者都是先比较值,然后输出满足条件的记录。不同的是两者比较的对象,联接条件是将一个表的字段值与另一个表的字段值相比较,而筛选条件则是字段值与筛选值(实例文本)相比较。这里我们选择、输入:订货表.客户名称=新华书店

我们希望按照预付款数额由小到大排列,因此我们从“选定字段”中将表达式添加到“排序条件”框中。如下图:

我们不需要分组,“分组依据”选项卡不设置。“杂项”取默认值。
这样,基于“图书订货库”的一个查询就完成了。
单击鼠标右键,在快捷菜单中选取“运行查询”,就会在默认的“浏览”窗口中看到我们查询的结果,如下图:

和输出到“浏览”窗口类似,如果我们选择“屏幕”则会将查询结果显示在屏幕上,下图为屏幕的一部分:

如果我们在“查询去向”中选择“临时表”,并在其文本框中输入“xhsd”作为表名,则在快捷菜单中“运行查询”时,就会将查询结果送到名为 xhsd 的临时表中。从“窗口”菜单中单击“数据工作期”,则会看到,在“数据工作期”窗口中,出现了 xhsd 的表名,双击它可以从浏览窗口中打开该表,同上图。数据工作期窗口如下图:

如果我们在“查询去向”中选择“表”,并在其文本框中输入“ls”,则当我们运行查询后,查询结果就送到ls.dbf表中,用来进行各种操作。从“打开”窗口就可看到出现了 ls.dbf 的表名。如下图:

和选择“表”类似,如果选择“报表”或“标签”,会将这次查询的结果送到指定的报表和标签中去。
选择“图形”的情况我们在下节中介绍。
我们在选择查询去向后将查询保存在“新华书店.QPR”中。
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|