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

admin2013-03-31  32

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

选项

答案步骤1:在命令窗口执行命令:MODIFY COMMANDprog1,新建程序并打开程序编辑器。 步骤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:单击“常用”工具栏中的“运行”按钮运行程序。

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

最新回复(0)