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

【正确答案】 D
【答案解析】
【正确答案】 A
【答案解析】
【正确答案】 A
【答案解析】[分析]
试题(30)根据题意查询至少供应了3项工程(包括3项)的供应商,应该按照供应商号分组,而且应该加上条件工程号的数目。但是需要注意的是,一个供应商可能为同一个项目供应了多种零件,因此,在统计工程项目数的时候需要加上DISTINCT,以避免重复统计导致错误的结果。
假如按供应商号Sno='S1'分组,结果如表16-3所示。
表16-3 按工程号JNO='J1'分组
Sno
Pno
Jno
Qty
Sno
Pno
Jno
Qty

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。