在考生文件夹下有仓库数据库CHAXUN3包括三个表文件: ZC(仓库号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文件具有相同的结构)中。 单击“退出”菜单项,程序终止运行。 (注:相关数据表文件存在于考生文件夹下)
参考答案:
解析:菜单的建立,结构化查询语言(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 str Table Name而直接生成一个文件名为str Table Name的.DBF表。