(1)将order detaill表中的全部记录追加到order detail表中,然后用SQL SELECT语句完成查询:列出所有订购单的“订单号”、“订购日期”、“器件号”、“器件名”和“总金额”(按“订单号”升序,“订单号”相同再按“总金额”降序),

admin2014-11-30  35

问题 (1)将order detaill表中的全部记录追加到order detail表中,然后用SQL SELECT语句完成查询:列出所有订购单的“订单号”、“订购日期”、“器件号”、“器件名”和“总金额”(按“订单号”升序,“订单号”相同再按“总金额”降序),并将结果存储到results表中(其中“订单号”、“订购日期”、“总金额”取自order list表,“器件号”、“器件名”取自order detail表)。
    (2)打开modil.prg命令文件,该命令文件包含3条SQL语句,每条SQL语句中都有一个错误,请改正(注意:在出现错误的地方直接改正,不可以改变SQL语句的结构和SQL短语的顺序)。

选项

答案(1)步骤1:在命令窗口执行命令: SELECT*FROM order detail INTO ARRAY temp INSERT INTO order detail FROM ARRAY temp 将detaill表中的记录全部复制到detail表中。 步骤2:在命令窗口执行如下SQL命令语句完成查询: 1 SELECT order-list.订单号,order-list. 订购日期, order-detail.器件号, order-detail.器件名,order-list.总金额; 2 FROM订货管理!order-liSt INNER JOIN 订货管理!order-detail ; 3 ON order-list.订单号=order-detail. 订单号; 4 ORDER BY order—list.订单号,order-list. 总金额DESC; 5 INTO TABLE resultS.dbf (注意:以上SQL语句是根据查询文件生成的,大家也可以通过查询设计器完成本题操作。) (2)步骤1:在命令窗口执行命令:MODIFY COMMAND modil,打开modil程序文件,文件中的命令代码如下: &&所有器件的单价增加 5元 1 UPDATE order-detaill SET单价WITH单价+5 &&计算每种器件的平均单价 2 SELECT器件号,AVG(单价)AS平均价 FROM order-detaill ORDER BY器件号 INTO CURSOR lsb &&查询平均价小于500的记录 3 SELECT*FROM 1sb FOR平均价<500 修改程序中的错误行,修改后的程序如下: 1 UPDATE order-detail 1 SET单价=单价 +5 &&UPDATE语句中赋值是通过“=”号,而不是WITH 2 SELECT器件号,AVG(单价)AS平均价FROM order-detaill GROUP BY器件号 INTO CURSOR lsb &&GROUP BY短语才是分组短语,而 ORDER BY短语是用来对查询结果进行排序的 3i SELECT*FROM lsb WHERE平均价<500 && SELECT的条件短语是WHERE,而不是FOR 步骤2:保存文件修改,在命令窗口执行命令:DO modil.prg,执行程序文件。

解析 (1)本题考查了SQL的简单查询和联接查询。进行联接查询时主要是判断查询输出字段来自哪个数据表(本题都已指明),再正确设置联接条件。
(2)本题考查了SQL更新功能;分组计算查询和简单查询。
    第一处错误属于SQL更新命令格式错误,通过SQL命令给字段赋新值是通过“=”号设置的。
    第二处错误是分组短语与排序短语混淆了,这也是改错题中经常设置错误的地方。
    第三处错误是查询语句的命令格式错误,SQL查询中筛选条件通过WHERE短语指出。
转载请注明原文地址:https://kaotiyun.com/show/esEp777K
0

最新回复(0)