三、综合应用(1小题,计30分)
在考生文件夹下有仓库数据库CHAXUN3包括三个表文件:
ZG(仓库号 C(4),职工号 C(4),工资 N(4))
DGD(职工号 C(4),供应商号 C(4),订购单号 C(4),订购日期 D,总
金额 N(10))
GYS(供应商号 C(4),供应商名 C(16),地址 C(10))
设计一个名为CX3的菜单,菜单中有两个菜单项"查询"和"退出"。
程序运行时,单击"查询"应完成下列操作:检索出工资多于1230元的职工向北
京的供应商发出的订购单信息,并将结果按总金额降序排列存放在ord1文件
(和DGD文件具有相同的结构,ord1为自由表)中。
单击"退出"菜单项,程序终止运行。
(注:相关数据表文件存在于考生文件夹下)
本题主要考核点:
菜单的建立、结构化查询语言(SQL)中的嵌套查询、查询的排序、查询结果的去向等知识
解题思路:
利用菜单设计器定义两个菜单项,在菜单名称为"查询"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗口来添加"查询"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列的中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT
"查询"菜单项要执行的程序:
首先打开数据库 Open database CHAXUN3.dbc
我们可以通过下面的查询得到工资多于1230的所有职工的职工号 SELECT 职工号 FROM ZG WHERE 工资>1230
可以通过下面的查询得到地址在北京的所有供货商的供货商号 SELECT 供货商号 FROM GYS WHERE 地址="北京"
而题面所要求的正是同时满足以上两个条件的订购单信息,也就是职工号满足第一个条件上,可用 职工号 IN (SELECT 职工号 FROM ZG WHERE 工资>1230) 来实现;供货商号满足第二个条件,可用 供货商号 IN (SELECT 供货商号 FROM GYS WHERE 地址="北京") 来实现。因此可得到满足条件的订购单的SQL查询为:SELECT * FROM DGD WHERE 职工号 IN (SELECT 职工号 FROM ZG WHERE 工资>1230) AND 供货商号 IN (SELECT 供货商号 FROM GYS WHERE 地址="北京") ORDER BY 总金额 DESC INTO TABLE ord1
本题还考对查询的排序和查询的去向进行了考核.可以用ORDER BY order_Item [ASC|DESC]来让查询的结果按某一列或某几列的升序(ASC)或降序(DESC)进行排列。而查询的去向可以通过INTO TABLE strTableName 而直接生成一个文件名为strTableName的.DBF表。
