create table student(
 sno char(10) primary key, --学号
 sname nvarchar(20),    --姓名
 ssex bit,    --性别
 birthdate smalldatetime,  --出生日期
 sdept varchar(10)         --所属院系
)
create table course
( cno char(6) primary key,  --课程号
  cname nvarchar(20),       --课程名
  ccredit int,              --学分
  pcno char(6)              --先行课课程号
)
create table sc
(
   sno char(10), --学号
   cno char(6),         --课程号
   grade int,           --课程成绩
   primary key (sno,cno)
)
查询某位学生的某门课程成绩比该门课程的平均成绩高10分的该学生的学号、姓名、课程号及该课程的成绩么写么写?

解决方案 »

  1.   

    select b.sno,sname,a.cno,grade from sc a,student b
    where a.sno=b.sno and a.grade-10 = (select avg(grade) from sc a group by cno)本人所写,有问题,不知道么办?
      

  2.   

    http://topic.csdn.net/u/20100517/17/b2ab9d5e-73a2-4f54-a7ec-40a5eabd8621.html?89116
      

  3.   


    select a.sno,s.sname,b.cno,b.grade 
    from student a
    inner join sc b
    inner join 
    (select cno,avg(grade) agrade
    from sc
    group by cno) c
    on a.sno=b.sno and b.cno=c.cno
    and b.grade>=c.agrade+10
      

  4.   


    select a.sno,s.sname,b.cno,b.grade 
    from student a
    inner join sc b on
    a.sno=b.sno
    inner join 
    (select cno,avg(grade) agrade
    from sc
    group by cno) c
    on  b.cno=c.cno
    where b.grade>=c.agrade+10