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

admin2013-06-10  20

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

选项

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

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

最新回复(0)