问题 单项选择题

19~25题所用到的数据如表1和表2所示。
表1 课程表(KC.dbf)
课程号课程名学分
0001C程序设计5
0002数据结构6
0003计算机基础4
0004数据库应用基础4
表2 选课表(SKB.dbf)
学号课程号成绩
980001000198
980002000276
980001000250
980002000369
980003000175
980003000368
980004000155
980005000176
980004000265
9800030002J30
980003000486
980002000477

列出总学分超过8的学生的学号和总学分(只有成绩大于或等于60才能取得学分),下列语句中正确的是______。

A.SELECT 学号,SUM(学分) AS 总学分 FROM SKB; WHERE 成绩>=60 AND 总学分>=8

B.SELECT 学号,SUM(学分) AS 总学分 FROM SKB; HAVING 成绩>=60 AND 总学分>=8

C.SELECT SKB.学号,SUM(KC.学分)AS 总学分 FROM SKB,KC; WHERE KC.课程号=SKB.课程号 AND SKB.成绩>=60; GROUP BY SKB.学号; HAVING 总学分>=8

D.SELECT SKB.学号,SUM(KC.学分)AS 总学分 FROM SKB,KC; GROUP BY SKB.学号; HAVING SKB.成绩>=60 AND 总学分>=8

答案

参考答案:C

解析:

[分析]: 此题涉及成绩和学分,这两个字段分别在两个表中,故也要在两个表之间建立连接。为求得每个学生的总学分,可首先选出成绩大于60分的记录,然后利用GROUP BY子句按照学号相等进行分组,通过统计函数SUM()求出学分的和。由于最后只要显示出学分超过8的学生的信息,故可以使用HAVING子句来筛选符合条件的分组。

单项选择题
选择题