首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在做本题前首先确认在基础操作中已经正确地建立了order_detail表,在简单应用中已经成功地将记录追加至o_order_detail表。 当order detail表中的“单价”修改后,应该根据该表的“单价”和“数量”字段修改order_list表的“
在做本题前首先确认在基础操作中已经正确地建立了order_detail表,在简单应用中已经成功地将记录追加至o_order_detail表。 当order detail表中的“单价”修改后,应该根据该表的“单价”和“数量”字段修改order_list表的“
admin
2017-03-29
35
问题
在做本题前首先确认在基础操作中已经正确地建立了order_detail表,在简单应用中已经成功地将记录追加至o_order_detail表。
当order detail表中的“单价”修改后,应该根据该表的“单价”和“数量”字段修改order_list表的“总金额”字段,现在有部分order_list记录的“总金额”字段值不正确,请编写程序挑出这些记录,并将这些记录存放到一个名为od_mod的表中(与order_list表结构相同,自己建立),然后根据order_detail表的“单价”和“数量”字段修改od_mod表的“总金额”字段(注意一个od_mod记录可能对应几条order_detail记录),最后od_mod表的结果要求按“总金额”升序排序,编写的程序最后保存为progl.prg。
选项
答案
步骤1:在命令窗口执行命令:
MODIFY COMMAND progl,
打开程序文件编辑器输入如下程序代码:
SELECT订单号,SUM(单价*数量)AS总金额;
FROM order detail;
GROUP BY订单号;
INTO CURSOR arrtable
SELECT order list.*;
FROM order list,arrtable;
WHERE order list.订单号=arrtable.订单号ANDorder list.总金额<>arrtable.总金额;
INTO TABLE ocl mod
USE od mod
DO WHILE NOT EOF()
SELECT arrtable.总金额FROM arrtable;
WHERE arrtable.订单号=od mod.订单号;
INTO ARRAY arr
REPLACE总金额WITH arr
SKIP
ENDDO
CLOSE ALL
SELECT+FROM od mod ORDER BY总金额;
INTO CURSOR arrtablel
SELECT * FROM arrtablel INTO TABLE od mod
步骤2:保存文件修改,在命令窗口执行命令:DO progl.prg,执行程序文件。 SQL分组与计算查询;程序基本结构。
解析
本题主要考查SQL分组计算查询:DO WHILE循环结构。本基本解题思路可按以下步骤进行:
首先,根据order_detail表的“单价”和“数量”数据,利用分组计算查询求出每组订单的“总金额”,将结果保存到一个临时表中。
然后,通过对order_list表和临时表的联接查询,找出order_list表中“总金额”字段与临时表中“总金额”不相同的记录,并将order_list表中这些“总金额”不相同的记录输出到od_mod表中。
接着利用DO WHILE循环语句对od_mod表中的每条记录进行处理。通过SQL查询语句从临时表中先获得与od mod表当前所指记录“订单号”相同的“总金额”字段值,将该值保存到数组中,再通过REPLACE命令修改od_ mod表当前记录的值,每处理完一条记录,记录指针便指向下一条记录,一直到处理完od_mod表中的所有记录。
最后将od_mod表的记录按“总金额”排序,由于查询结果不能覆盖正在作为查询数据源的表,因此,可以通过一个临时表过渡,保存排序的表记录,再通过临时表将排好序的记录保存到原数据表中。
转载请注明原文地址:https://www.kaotiyun.com/show/TeIp777K
本试题收录于:
二级VF题库NCRE全国计算机二级分类
0
二级VF
NCRE全国计算机二级
相关试题推荐
在VisualFoxPro中,执行SQL的DELETE命令和传统的FoxProDELETE命令都可以删除数据库表中的记录,下面正确的描述是()。
向student表插入一条新记录的正确SQL语句是()。
设有商品(商品号,商品名,单价)、商店(商店号,商店名,区域名,经理姓名)和销售(商店号,商品号,销售日期,销售数量)表,查询销售金额合计超过20000的商店,查询结果包括商店名和销售金额合计。正确的命令是()。
SQL的SELECT语句中,“HAVING”用来筛选满足条件的()。
在SQL的SELECT查询的结果中,消除重复记录的方法是()。
在VisualFoxPm中,有如下程序,函数IIFO返回值是()。*程序PRIVATEX,YSTORE"男"TOXY=LEN(X)+27IIF(Y
设X="11",Y="1122",下列表达式结果为假的是()。
设有如下表: 图书(总编号C,分类号C,书名C,作者C,出版单位C,单价N) 查询单价最高的10本图书的信息,正确的SQL语句是()。
在SQL中,数据操作语句不包括()。
随机试题
瑞士联邦政府实行委员会制的特殊条件有()
慢性肾衰竭病人最常见的继发感染是
甲、乙、丙三人分别出资1万、1万、2.5万设立一个有限责任公司A,该公司的章程规定公司的经营期限为5年,但对公司股东去世后出资如何处理未作规定。后甲在经营期限内因病去世。丙以个人名义与丁订立一棉花买卖合同,欠丁合同款2.5万元,丁多次催要,丙以无钱还款为由
会计报表中的数据都可直接用会计科目的余额或发生额填列。()
汉译英:“唛头;指标;商标”,正确的翻译为( )。
某市区房地产开发企业为增值税一般纳税人。2018年度,该企业会计自行核算,取得主营业务收入40000万元、其他业务收入10万元、营业外收入190万元、扣除主营业务成本28000万元、其他业务成本8万元、营业外支出2万元、税金及附加230万元、管理费用4
下列句子中加点成语使用恰当的一项是()。
我国民间有这样的一种说法:“种瓜得瓜,种豆得豆”,这句话反映了亲代与子代之间在形态、结构和生理功能上非常相似,这就是()。
常用的效果量有
Tounderstandthemarketingconcept,itisonlynecessarytounderstandthedifferencebetweenmarketingandselling.Nottooma
最新回复
(
0
)