首先将order_detail表全部内容复制到od_bak表,然后完成如下操作: (1)将od_bak表中的订单号字段值只保留最后一个字母(用REPLACE命令或SQL UPDATE命令完成修改)。 (2)用SQL语句对0d bak表编写完成如下功

admin2015-08-20  27

问题 首先将order_detail表全部内容复制到od_bak表,然后完成如下操作:
(1)将od_bak表中的订单号字段值只保留最后一个字母(用REPLACE命令或SQL UPDATE命令完成修改)。
    (2)用SQL语句对0d bak表编写完成如下功能的程序:
    ①把“订单号”相同并且“器件号”相同的订单合并为一条记录,“单价”取最低价,“数量”取合计。
    ②结果先按新的“订单号”升序排序,再按“器件号”升序排序。
    ③最终记录的处理结果保存在od new表中,表中的字段由“订单号”、“器件号”、“器件名”、“单价”和“数量”构成。
    (3)最后将程序保存为progl.prg,并执行该程序。

选项

答案步骤1:在命令窗口执行命令:SELECT*FROM order_detailINTO TABLE od_bak,将order_detail表的全部内容复制到od_bak表中。 步骤2:在命令窗口执行命令:UPDATE od_bak SET订单号=RIGHT(ALLTRIM(订单号),1),将od_bak表中的“订单号”字段值只保留最后一个字母。 步骤3:在命令窗口执行命令:MODIFY COMMAND PROG1,新建程序并打开程序编辑器。 步骤4:在程序编辑器中输入如下程序代码: SELECT订单号,器件号,器件名,; MIN(单价)AS单价,SUM(数量)AS数量; FROM OD_BAI<; GROUP BY订单号,器件号; ORDER BY订单号,器件号; INTO TABLE OD_NEW 步骤5:单击“保存”按钮,并运行程序。

解析 本题主要考查的是程序的建立方法、SQL分组与计算查询语句、记录的修改方法。本题的SQL分组与计算查询语句比较复杂,本题大概可以分为以下几步:
    首先利用select语句将order_detail表的记录复制到新表中,该语句比较简单。
    接着,利用UPDATE语句更新表中的记录值,不熟悉UPDATE语句的考生也可以通过replace…with…命令更新。
    最后,通过SQL分组与计算查询语句对记录进行合并,其中用到了min()和sum()函数计算,分组语句则要求同时对两个字段进行分组,首先是按订单号字段分组,接着再按配件号分组,分组计算完毕之后,再通过order by短语对查询结果进行排序,最后保存查询结果到新表中。
转载请注明原文地址:https://kaotiyun.com/show/DPEp777K
0

最新回复(0)