问题 单项选择题

给定供应关系SPJ(供应商号,零件号,工程号,数量),查询至少供应了3项工程(包含3项)的供应商,输出其供应商号和供应零件数量的总和,并按供应商号降序排列。

SELECT供应商号,SUM(数量)FROM SPJ

()

()

();

SELECT供应商号,SUM(数量)FROM SPJ

GROUP BY供应商号

HAVING COUNT(DISTINCT(工程号))>2

()

A.ORDER BY供应商号DESC

B.GROUP BY供应商号DESC

C.ORDER BY供应商号

D.GROUP BY供应商号

答案

参考答案:A

解析:

[分析]:

试题(30)根据题意查询至少供应了3项工程(包括3项)的供应商,应该按照供应商号分组,而且应该加上条件工程号的数目。但是需要注意的是,一个供应商可能为同一个项目供应了多种零件,因此,在统计工程项目数的时候需要加上DISTINCT,以避免重复统计导致错误的结果。

假如按供应商号Sno=’S1’分组,结果如表16-3所示。

表16-3 按工程号JNO=’J1’分组

SnoPnoJnoQtySnoPnoJnoQty

S1

S1

S1

S1

P1

P3

P3

P3

J1

J1

J2

J2

200

400

200

100

S1

S1

S1

P1

P6

P3

J3

J3

J3

200

300

200

从表16-3可以看出,如果不加DISTINCT,统计的数为7,而加了DISTINCT,统计的数是3。故试题(31)正确的答案是A。

要求按供应商号降序排列,所以应按供应商号分组,同时加上DESC按降序排列。故试题(32)正确的答案是A。

单项选择题
填空题