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

admin2015-08-20  28

问题 (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_detail INTO ARRAY temp SELECT*INTO order_detail FROM ARRAY temp 将detail1表中的记录全部复制到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;INTO TABLE results.dbf (注意:以上SQL语句是根据查询文件生成的,大家也可以通过查询设计器完成本题操作。) (2) 步骤1:在命令窗口执行命令:MODIFY COMMAND modil,打开modil程序文件,文件中的命令代码如下: &&所雨器仟的旱价增加5元 UPDATE order_detaill SET单价WITH单价+5 &&计算每种器件的平均单价 SELECT器件号,AVG(单价)As平均价 FROM order_detaill ORDER BY器件号 INTO CURSOR 1Sb &&查询平均价小于500的记录 SELECT * FROM 1 sb FOR平均价<500 修改程序中的错误行,修改后的程序如下: UPDATE order_detaill SET单价=单 价+5 &&UPDATE语句中赋值是通过“=”号,而不是WITH SELECT器件号,AVG(单价)AS平均价FROM order_detaill GROUP BY器件号INTO CURSOR 1sb&&GROUP BY短语,才是分组短语,而ORDER BY短语是用来对查询结果进行排序的 SELECT*FROM isb WHERE平均价<500 &&SELECT的条件短语是WHERE,而不是FOR 步骤2:保存文件修改,在命令窗口执行命令:Do modi 1.prg,执行程序文件。

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

最新回复(0)