当order_detail表中的单价修改后,应该根据该表的“单价”和“数量”字段修改order_list表的总金额字段,现在编写程序实现此功能,具体要求和注意事项如下: ①根据order_detail表中的记录重新计算order_list表的总金额

admin2015-08-20  35

问题 当order_detail表中的单价修改后,应该根据该表的“单价”和“数量”字段修改order_list表的总金额字段,现在编写程序实现此功能,具体要求和注意事项如下:
    ①根据order_detail表中的记录重新计算order_list表的总金额字段的值。
    ②一条order_list,记录可以对应几条order_detail记录。
    ③在编程前应保证在基础操作中正确地建立了order_list表,在简单应用中为该表追加了记录(注意:只能追加一次)。
    ④最后将order_list表中的记录按总金额降序排序存储到od_new表中。(表结构与order_list表完全相同)
    ⑤将程序保存为progl.prg文件。

选项

答案步骤1:在命令窗口执行命令:MODIFY COMMAND prog1,新建程序并打开程序编辑器。 步骤2:在程序编辑器中输入如下程序代码: CLOSE DATABASE USE ORDER_LIST SELECT 订单号,SUM(单价*数量)AS AA; FROM ORDER_DETAIL; GROUP BY订单号ORDER BY订单号; INTO CURSOR FF SELECT ORDER_LIST DO WHILE!EOF() SELE FF LOCATE FOR订单号=ORDER_LIST.订单号 SELE ORDER_LIST REPLACE总金额WITH FF.AA SKIP ENDDO SELECT * FROM ORDER_LIST ORDER BY 总金额DESC INTO DBF OD_NEW 步骤3:单击“常用”工具栏中的“运行”按钮运行程序。

解析 本题主要考查的是程序文件的建立、DO WHILE循环结构和SQL分组计算查询。
    本题的基本解题思路是:
    以order_list表为当前表,通过SQL分组与计算查询从order_detail表中按订单号分组计算每组订单的总金额,并按订单号排序,将结果保存到临时表中。
    接着通过do while循环逐条处理order_list中订单号与,临时表中订单号相同的记录,利用replace命令修改order_list的总金额字段值等于临时表中对应的总金额字段值。
    最后用SQL简单查询将order_list表中的记录保存到表OD NEW中。
转载请注明原文地址:https://kaotiyun.com/show/HXEp777K
0

最新回复(0)