(1)使用SQL语句查询每个职工所经手的具有最高金额的订购单信息(orders表),并将结果按金额升序存储到表results中。 (2)使用SQL命令建立视图view_b,视图中是目前在orders表中没有所签订单的职工(employee)信息,记

admin2013-06-10  23

问题 (1)使用SQL语句查询每个职工所经手的具有最高金额的订购单信息(orders表),并将结果按金额升序存储到表results中。
    (2)使用SQL命令建立视图view_b,视图中是目前在orders表中没有所签订单的职工(employee)信息,记录按仓库号降序排列;同时把所用命令保存在文本文件view_b.txt中。

选项

答案(1)步骤1:在命令窗口执行如下SQL命令语句并执行: SELECT 职工号,MAX(金额) 最高金额; FROM orders; GROUP BY 职工号; INTO CURSOR temp 步骤2:在命令窗口继续执行如下SQL命令语句: SELECT orders.*; FROM orders,temp; WHERE orders.职工号=temp.职工号 AND orders.金额=temp.最高金额; ORDER BY 金额; INTO TABLE results (2) 步骤1:在命令窗口执行命令:OPEN DATABASEorders_manage,打开数据库环境。 步骤2:在命令窗口执行命令:MODIFY FILE view_b,打开文本文件编辑器编写视图定义代码。 步骤3:在编辑器中输入如下程序代码: CREATE VIEW view_b AS; SELECT * FROM EMPLOYEE; WHERE 职工号 NOT IN; (SELECT 职工号 FROM ORDERS); ORDER BY 仓库号 DESC 步骤4:在命令窗口执行命令:DO VIEW_B.TXT,执行文件(注意:执行文件时,文件后缀名.txt不能缺省)。

解析 (1)本题考查了SQL分组查询和联接查询。本题的解题思路是:先在orders表中按职工号分组,查询出每个职工所经手的具有最高金额的订单所对应的职工号和金额,将它保存到临时表中,然后再将orders表和该临时表做联接查询,查找出每个职工的最高金额订单所对应的orders表信息。另外,对数据进行分组计算查询时,用来求最大值的函数为MAX()。
    (2)本题主要考查了利用SQL命令建立视图;SQL嵌套查询。
    利用SQL命令建立视图的基本命令格式为:CREATEVIEW<视图名>AS<SELECT语句>。本题可以用嵌套查询完成,先在内查询中从orders表查找出有订单的职工号,再在外查询中从employee表中找出orders表中没有的职工号,这里用到NOT IN运算符。
转载请注明原文地址:https://jikaoti.com/ti/UxT0FFFM
0

最新回复(0)