select * from Student select * from Course  select * from Grade
update  grade set GradeCount=(select avg(GradeCount) from Grade where CourseID=2) where studentID=(select SID from Student where SName='b') 
  and courseID=2 2是CourseId表示数学

解决方案 »

  1.   

    问题:
    有3个表,学生表Student(StudentId,StudentName)、课程表Course(CourseId,CourseName)、成绩表Grade(StudentId,CourseId,Grade)。写出“将所有同学的数学成绩的平均分改成张三同学的数学成绩的平均分”的Sql语句。
    -----------------------------------
    应该是将所有同学的数学成绩平均分改成张三的数学成绩吧.如果是这样的话
       update Grade
    set grade=a.avg_grade
    from grade g join Student s
       on g.studentID=s.studentID and s.studentName='zhangsan'
    join Course c on g.couseID=c.couseID and c.couseName='shuxue'
       join (select avg(grade) as avg_grade from garde where couseID in(select couseID from couse where couseName='shuxue')) a-------没有测试过---------
    好象太复杂了点,老大在旁边,不敢在论坛逗留