在考生文件夹下的selldb数据库中包含“部门表”、“销售表”、“部门成本表”和“商品代码表”等。 (1)在考生文件夹下已有程序文件three.prg,其功能如下:查询2006年各部门商品的年销售利润情况。查询内容为:“部门号”、“部门名”、“商品

admin2013-03-31  19

问题 在考生文件夹下的selldb数据库中包含“部门表”、“销售表”、“部门成本表”和“商品代码表”等。
    (1)在考生文件夹下已有程序文件three.prg,其功能如下:查询2006年各部门商品的年销售利润情况。查询内容为:“部门号”、“部门名”、“商品号”、“商品名”和“年销售利润”,其中“年销售利润”等于销售表中一季度利润、二季度利润、三季度利润和四季度利润的合计。查询结果按部门号升序,然后按年销售利润降序排序,并将查询结果输出到表taba中。表taba的字段名分别为:“部门号”、“部门名”、“商品号”、“商品名”和“年销售利润”。
    请打开程序文件three.prg,修改其中的错误,然后运行该程序。
    (2)请用SQL语句查询2005年度的各部门的“部门号”、“部门名”、“一季度利润合计”、“二季度利润合计”、“三季度利润合计”、“四季度利润合计”。查询结果按“部门号”升序排序存入表account中,并将SQL语句存入four.prg中。
    注意:表account.dbf中的字段名依次为“部门号”、“部门名”、“一季度利润”、“二季度利润”、“三季度利润”和“四季度利润”。

选项

答案(1)步骤1:在命令窗口执行命令:MODIFY COMMAND three,打开程序文件,文件中的命令代码如下: *请改正以下语句代码中的错误,然后运行程序。SELECT 部门表.部门号,部门表.部门名,销售表.商品号,商品代码表.商品名,销售表.一季度利润+销售表.二季度利润+销售表.三季度利润+销售表.四季度利润AS年销售利润; FRON 部门表,销售表,商品代码表; ON 销售表.商品号=商品代码表.商品号; ON 部门表.部门号=销售表.部门号; WHERE 销售表.年度="2006"; ORDER 1,5; TO TABLE TABA 修改程序中的错误行,修改后的程序如下: SELECT 部门表.部门号,部门表.部门名,销售表.商品号,商品代码表.商品名,销售表.一季度利润+销售表.二季度利润+销售表.三季度利润+销售表.四季度利润AS年销售利润; FRON selldb!商品代码表INNER JOIN selldb!销售表TNNER JOIN selldb!部门表; ON 销售表.商品号=商品代码表.商品号; ON 部门表.部门号=销售表.部门号; WHERE 销售表.年度="2006"; ORDER BY 1,5 DESC; INTO TABLE TABA 步骤2:保存文件修改,在命令窗口执行命令:DO three,执行程序文件。 (2)步骤1:在命令窗口执行命令:NODIFY COMMAND four,打开程序文件,文件中的命令代码如下: SELECT 部门表.部门号,部门名,SUN(一季度利润) 一季度利润,SUN(二季度利润)二季度利润,SUN(三季度利润)三季度利润,SUN(四季度利润)四季度利润; FRON部门表,销售表; NHERE部门表.部门号=销售表.部门号AND年度="2005"; GROUP BY部门表.部门号; ORDER BY销售表.部门号; INTO TABLE account 步骤2:保存文件修改,在命令窗口执行命令:DO four,执行程序文件。

解析 (1)本题考查了SQL简单联接查询,语句比较简单。题目提供的程序中共有3处错误,第一处是多表联接的表示错误。当进行多表联接时,如果没有使用JOTN指定联接的表,而是将所有联接的表都放在FROM短语后,则表间的联接条件不能使用ON短语指定,只能将联接条件放在WHERE短语之后,各联接条件通过AND运算符联接。
    第二处错误是排序短语的错误,排序短语关键字是ORDER BY。
    第三处错误是查询输出短语错误,将结果保存到数据表中应使用INTO TABLE短语。
    (2)本题主要考查的是SQL分组计算查询。本题根据“部门号”字段分组,计算每个部门每个季度销售利润合计,利用SUN()函数求合计值。
转载请注明原文地址:https://jikaoti.com/ti/XVZ0FFFM
0

最新回复(0)