在考生文件夹下有仓库数据库gz3,其中包括如下两个表文件: zg(仓库号C(4),职工号C(4),工资N(4)) dgd(职工号C(4),供应商号C(4),订购单号C(4),订购日期D,总金额N(10)) 首先在gz3库中建立工资文件数据

admin2009-02-15  35

问题 在考生文件夹下有仓库数据库gz3,其中包括如下两个表文件:
   zg(仓库号C(4),职工号C(4),工资N(4))
   dgd(职工号C(4),供应商号C(4),订购单号C(4),订购日期D,总金额N(10))
   首先在gz3库中建立工资文件数据表gj(职工号C(4),工资N(4))。设计一个名为chaxun的菜单,菜单中有两个菜单项“查询”和“退出”。程序运行时,单击“查询”应完成下列操作:检索出与供应商 S7、S4和S6都有业务联系的职工的职工号和工资,并按工资降序存放到所建立的gj文件中。单击“退出”单项,程序终止运行。
   (注:相关数据表文件存在于考生文件夹下)

选项

答案在命令窗口输入命令:MODIFY DATABASE gz3,打开数据库设计器,右击数据库,选择“新建表”快捷菜单命令,表名为gj保存到考生文件夹下,接着在表设计器中根据题意,设置两个字段的字段名、类型及宽度。 在命令窗口输入命令:CREATE MENU chaxun,系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“查询”和“退出”,接着在“查询”菜单行的“结果”下拉框中选择“过程”选项,在“退出”菜单行的“结果”下拉框中选择“命令”选项。 单击“查询”菜单行中的“创建”按钮,进入程序设计的编辑窗口,在程序编辑器中输入如下程序段: *********“查询”菜单命令的程序设计********* SELECT DISTINCT zg.职工号,zg.32资FROM zg,dgd; WHERE zg.职工号=dgd.职工号; ANDzg.职工号IN; (SELECT职工号FROM dgd WHERE供应商号="S4"); AND zg.职工号IN(SELECT职工号FROM dgd WHERE供应商号="S6"); AND zg.职工号IN(SELECT职工号FROM dgd WHERE供应商号="S7"); ORDER BY zg.工资 DESC; INTO ARRAY arr INSERT INTO gi FROM ARRAY arr ********************************************** 在“退出”菜单项的“命令”文本框中编写程序代码SET SYSMENU TO DEFAULT。 选择菜单命令“菜单”—“生成”,生成一个菜单文件chaxun.mpr。关闭设计窗口,在命令窗口输入命令:DOchaxun.mpr,看到Visual FoxPro的菜单栏被新建的菜单所代替,单击“退出”菜单命令将恢复系统菜单。 执行“查询”菜单命令后,查询结果将保存到gj.dbf表中。

解析 本大题主要考查的是利用SQL中特殊运算符进行多表的联接查询,本题中可使用IN运算符进行包含查询,将查询结果写入新表时,由于表已经存在于数据库中,因此不能直接使用SQL直接输出到表的短语,但可以将结果先写入数组,然后通过数组将查询结果插入到新表由中。
转载请注明原文地址:https://kaotiyun.com/show/BiKZ777K
0

最新回复(0)