根据上述说明,用SQL定义“原材料”和“仓库”的关系模式如下,请在空缺处填入正确的内容。 create Table 仓库 (仓库号 Char (4), 面积 Int,

admin2009-05-15  37

问题 根据上述说明,用SQL定义“原材料”和“仓库”的关系模式如下,请在空缺处填入正确的内容。
   create Table 仓库 (仓库号 Char (4),
                      面积   Int,
                      负责人 Char(8),
                      电话   Char(8),
                       (a));//主键定义
   Create Table 原材料 (编号 Char (4)  (b),//主键定义
                         名称   Char (16),
                         数量   Int,
                         储备量 Int,
                         仓库号  (c),
                           (d));//外键定义
将下面的SQL语句补充完整,完成“查询存放原材料数量最多的仓库号”的功能。
Select 仓库号
From  (e)  
(f);

选项

答案(e)原材料 (f)Group by 仓库号 Having Sum(数量)>=Any (Select Sum(数量) From 原材料 Group by 仓库号

解析 我们知道,在SQL语句中,From子句里的是表或视图名称,这里要求“数量”,所以(e)空应填写“原材料”。
   要完成“查询存放原材料数量最多的仓库号”的查询功能,需要对关系“原材料”中的属性“数量”求和,这可以通过Sum(数量)来实现。同时,因为要求“存放原材料数量最多的仓库号”,所以需要对求和后的“数量”按“仓库号”分组,即一个“仓库号”只有一个总的“数量”。这可以使用“Group by仓库号”来实现。
   剩下的问题,也是最难的问题,是要实现“最多”。也就是说,我们求出的这个“仓库号”,其存放原材料的“数量”之和大于任何其他“仓库号”存放的原材料的“数量”之和,要满足这个条件,则需要使用having子句来实现,具体实现如下:
   Having Sum(数量)>=Any  (Select Sum(数量)
                           From 原材料
                           Group by 仓库号
   综上所述,实现“查询存放原材料数量最多的仓库号”查询功能的完整SQL语句如下:
   Select 仓库号
   From 原材料
   Group by 仓库号
   Having Sum (数量) >=Any  (Select Sum(数量)
                              From 原材料
                              Group by 仓库号;
转载请注明原文地址:https://kaotiyun.com/show/lzTZ777K
0

相关试题推荐
最新回复(0)