注册 登录
编程论坛 SQL Server论坛

求助啊!一共10道题 我们要考试了我不会啊!!!

宋广宇 发布于 2011-06-22 22:18, 947 次点击
S  (学号  姓名 出生日期  系  电话 性别 )  SC  (学号 课程号 成绩 )C  (课程号 课程名 教师 ) 三个数据表

12.至少选修了两门课及以上的学生姓名和性别(可用嵌套查询)。
13.选修了李老师所讲课程的学生人数。
14.“操作系统”课程得最高分的学生的姓名、性别和所在系(可用嵌套查询)。
15.显示所有课程的选修情况。
16.取出没有选修“操作系统”课程的学生姓名和年龄。
17.没有选修李老师所讲课程的学生。
18.取出选修了全部课程的学生和性别。
19.检索至少选修课程“数据结构”和“C语言”的学生学号。
20.检索学习课程号为C02的学生学号、姓名和所在系。
21.检索选修课程号C01或C02的学生学号、姓名和所在系。
22.检索至少选修课程号为C01和C03的学生姓名。
23.检索每个学生的年龄。
24.在学生基本信息表S中检索学生的姓名和出生年份,输出的列名为STUDENT_NAME和BIRTH_YEAR。
28·列出选修课程超过3门的学生姓名及选修门数
29`求选修各课程的学生的人数
30`在学生选课数据表SC中,求选修课程C01的学生的学号和得分,并将结果
39`检索至少有两名男同学选修的课程名
40`检索学生基本信息表S中不姓'王'的学生记录
43`求选修C04课程的学生的平均年龄。
47`查询平均成绩大于60分的同学的学号和平均成绩
49`查询姓"李"的李老师的个数
57`查询至少学过课程号为"c01"同学所学一门课的其他同学学号和姓名;
58`把"SC"表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;
60`删除学习"叶平"老师课的SC表记录
61`查询每门课程被选修的学生数
62`查询出只选修了一门课程的全部学生的学号和姓名
7 回复
#2
宋广宇2011-06-22 22:20
大神们 救救火啊 一共60道我就这些不太会啊!!答案也没有。。。马上要考试了。。麻烦大神们帮帮忙。。
会哪道直接写题号啊!! 帮帮忙啊!!!马上考试了!!!
#3
davyxjc2011-06-23 15:22
这个很简单的。
#4
png2011-06-23 21:49
...没测试哈...

(12)
select StudentName, StudentGender
from   S
where  StudentID in
(
    select StudentID from SC
    group by StudentID
    having count(*) > 1
)

(13)
select    count(*)
from      C join SC on C.CourseID  = SC.CoureID
where     C.TeacherName = 'Mr. Li'


(14)
select   S.StudentName, S.Gender, S.Department
from     SC join S on SC.StudentID = S.StudentID
Where    SC.StudentGrade =
    (
        select    Max(StudentGrade)
        from     SC
        where    CourseID =
            (
            select CourseID from C where CourseName = 'Operating System
            )
    )   
    and
    SC.CourseID =
    (
        select CourseID from C where CourseName = 'Operating Systems'
    )


(15)
select     *
from       S join SC on S.StudentID = SC.StudentID
             join C  on SC.CourseID =  C.CourseID

(16)
select     S.StudentName, datediff(yy, S.BirthDate, getdate()) as StudentAge
from       SC join S on SC.StudentID = S.StudentID
where      SC.CourseID <> (Select CourseID from C where CourseName = 'Operating Systems')
   
(17)
select    StudentID
from      SC
where     CourseID <> (Select CourseID from C where TeachName = 'Mr. Li')

(18)
select    StudentID, StudentGender
from      S
where     StudentID in
    (
        Select     StudentID
        from    SC
        gropu by StudentID
        having     count(*) = (select count(distinct CourseID) from C)
    )
#5
png2011-06-23 22:40
(16)应该加上 Group by S.StudentID, S.StudentName, S.BirthDate

(17) 应该是这样.
select    distinct StudentID
from      SC
where     StudentID not in
          (
             select StudentID
             from SC
             where CourseID in (select CourseID from C where TeacherName = 'Mr. Li')
           )

[ 本帖最后由 png 于 2011-6-23 23:00 编辑 ]
#6
宋广宇2011-06-25 15:07
回复 5楼 png
大神 15 16 能重新做一遍吗。。没看懂
#7
宋广宇2011-06-25 15:07
回复 5楼 png
大神 15 16 能重新做一遍吗。。没看懂
#8
新编程论坛2011-06-25 16:34
,呵呵!我的考试考完了
1