在考生文件夹下有学生成绩数据库XUSHENG3,包括如下所示三个表文件以及相关的索引文件: XS.DBF(学生文件:学号C8,姓名C8,性别C2,班级C5;另有索引文件XS.IDX,索引键:学号) CJ.DBF(成绩文件:学号C8,课程名C20,成绩N5.

admin2009-02-15  31

问题 在考生文件夹下有学生成绩数据库XUSHENG3,包括如下所示三个表文件以及相关的索引文件: XS.DBF(学生文件:学号C8,姓名C8,性别C2,班级C5;另有索引文件XS.IDX,索引键:学号) CJ.DBF(成绩文件:学号C8,课程名C20,成绩N5.1另有索引文件DJ.IDX,索引键:学号) CJE.DBF(成绩表文件:学号C8,姓名C8,班级C5,课程名C12,成绩N5.1)设计一个名为XS3的菜单,菜单中有两个菜单项“计算”和“退出”。程序运行时,  单击“计算”菜单项应完成下列操作:将所有选修了“计算机基础”的学生的“计算机基础”成绩,按成绩由高到低的顺序填列到成绩表文件 CJB.DBF中(事前须将文件中原有数据清空)。
   单击“退出”菜单项,程序终止运行,
   (注:相关数据表文件存在于考生文件夹下)

选项

答案在本题中要想得到所有选修了“计算机基础”的学生的“计算机基础”成绩及学生的姓名等信息,就需要用到联接查询。因为学生的姓名、班级在表XS.DBF中,而学生的成绩在表CJ.DBF中。而这两个表要联接起来可以通过“学号”字段。 有以下两种联接查询的形式:SELECTXS.学号,姓名,班级,课程名,成绩FROMXS,CJ WHEREXS.学号=CJ.学号AND课程名="计算机基础"或者 SELECTXS.学号,姓名,班级,课程名,成绩FROM XS LEFT JION CJ ON XS.学号=CJ.学号WHERE课程名="计算机基础" 通过以上的联接查询便得到了所有选修“计算机基础”的学生的“计算机基础”的成绩及学生的姓名等信息。而题中所要求按成绩的降序排序,所以应该在以上SQL语句的基础上加入:ORDER BY成绩DESC 将查询所得到的结果放于一个数组变量A Fields Value中,要用到INTO ARRAY A Fields Value.至此一个完整的SQL联接查询语句便形成了:SELECTXS.学号,姓名,班级,课程名,成绩FROMXS,CJWHEREXS:学号=CJ学号AND课程名="计算机基础"ORDER BY成绩DESC INTO ARRAY A Fields Value 删除CJB.DBF中的所有资料 将table Name中的资料添加到己被清空的CJB.DBF中INSERT INTO CJB FROM ARRAY A Fields Value 删除CJB中有删除标记的记录PACK

解析
转载请注明原文地址:https://kaotiyun.com/show/sOKZ777K
0

最新回复(0)