首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在做本题前首先确认在基础操作中已经正确地建立了order_detail表,在简单应用中已经成功地将记录追加至o_order_detail表。 当order detail表中的“单价”修改后,应该根据该表的“单价”和“数量”字段修改order_list表的“
在做本题前首先确认在基础操作中已经正确地建立了order_detail表,在简单应用中已经成功地将记录追加至o_order_detail表。 当order detail表中的“单价”修改后,应该根据该表的“单价”和“数量”字段修改order_list表的“
admin
2017-03-29
29
问题
在做本题前首先确认在基础操作中已经正确地建立了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全国计算机二级
相关试题推荐
在SQL中,修改表结构的语句是()。
假设表文件TEST.DBF已经在当前工作区打开,要修改其结构,可使用的命令是()。
设有学生表student(学号,姓名,性别,出生日期,院系)、课程表course(课程号,课程名,学时)和选课表score(学号,课程号,成绩),查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是()。
从职工表(姓名、性别、出生日期)查询所有目前年龄在35岁以上(不含35岁)的职工信息,正确的命令是()。
假设有商店表,查询在“北京”和“上海”区域的商店信息的正确命令是()。
与“SELECT*FROM歌手WHERENOT(最后得分>9.00OR最后得分
若SQL语句中的ORDERBY短语中指定了多个字段,则()。
在SETEXACTOFF情况下,结果值为逻辑真的表达式是()。
假设在数据库表的表设计器中,字符型字段“性别”已被选中,正确的有效性规则设置是()。
随机试题
[*]
患者,男,51岁,肝功能不全,现因伤口细菌感染严重,而引起了严重的炎症。医生开具苄青霉素、克拉维酸钾和地塞米松进行治疗。下列哪种药物可通过竞争载体从肾脏排泄而使青霉素类药物疗效增强?()
下列哪种药是疗效最好的脱水药?()
国际货物运输代理企业之间一般不可以相互委托办理有关的业务。()
四川省的世界自然与文化双重遗产是()。
以下不属于线性调制的调制方式是()。
根据《公安机关督察条例》,督察机构认为公安机关的人民警察违反纪律需要采取停止执行职务、禁闭措施的,由督察机构作出决定,报上级公安机关行政首长批准后执行。( )
2012年度,某县政府在扫黄活动中抓获十余名涉嫌卖淫嫖娼的违法人员,为扩大教育警示作用,在公开处理的现场,警方逐一宣读涉案人员的姓名、出生日期和籍贯,并宣布处罚决定,然后游行示众。现场一千余人围观。该事件经媒体报道后引起广泛社会反响。有学者提出质疑,认为警
如图所示,水平地面上的物体,在水平恒定的拉力F的作用下,沿A、B.C方向做加速运动.已知AB段是光滑的,拉力F做功W1,BC是粗糙的,拉力F做功W2,则W1和W2的关系是()。
ABriefHistoryofAmericanAnti-SmokingCampaignsTheFirstAnti-SmokingTreatiseTobaccoisanativeAmericanplantth
最新回复
(
0
)