本试题(1)小题考查的是利用SQL查询语句进行查询,其中注意每两个表之间的关联及字段的选取即可;(2)小题利用报表向导完成报表设计,只要注意每个向导界面的设计内容即可。
3.综合应用题
系统已经建立了order_detail表,并已追加记录。
当order_detail表中的单价修改后,应该根据该表的“单价”和“数量”字段修改order_list表的总金额字段,现在有部分order_list记录的总金额字段值不正确,请编写程序挑出这些记录,并将这些记录存放到一个名为od_mod的表中(与order_list表结构相同,自己建立),然后根据order_detail表的“单价”和“数量”字段修改od_mod表的总金额字段(注意,一个od_mod记录可能对应几条order_detail记录),最后,od_mod表的结果要求按总金额升序排序,编写的程序最后保存为prog1.prg。
【参考答案】 具体步骤如下:
① 在“命令”窗口输入命令:MODIFY COMMAND prog1。
② 进入程序文件编辑器,在程序编辑窗口中输入如下程序段:
*******prog1.prg文件中的程序段******* SET TALK OFF
SET SAFETY OFF
SELECT 订单号,SUM(单价*数量)AS总金额; FROM order_detail;
GROUP BY 订单号; INTO CURSOR curtable
SELECT order_list.*;
FROM order_list,curtable;
WHERE order_list.订单号=curtable.订单号AND order_list.总金额<>curtable.总金额;
INTO TABLE od_mod
USE od_mod
DO WHILE NOT EOF()&&遍历od_mod中的每一条记录
SELECT curtable.总金额FROM curtable; WHERE curtable.订单号=od_mod.订单号; INTO ARRAY AFieldsValue
REPLACE 总金额 WITH AFieldsValue SKIP
ENDDO
CLOSE ALL
SELECT * FROM od_mod ORDER BY 总金额; INTO CURSOR curtable
SELECT * FROM curtable INTO TABLE od_mod
SET SAFETY ON
SET TALK ON
③ 保存设计结果,在“命令”窗口输入命令:DO prog1,执行程序文件。
【试题解析】
本试题考查的主要是SQL语句的应用,包括数据定义、数据修改和数据查询功能,设计过程中注意数据表和表中字段的选取,修改每条记录时,可利用DO-WHILE循环语句逐条处理表中每条记录。