我有2长表。
一张学生表 student  里面有成绩sumgrade 字段用来存储学生总成绩。
一张成绩表 grade  里面有stugrade字段表示一个学生每门门课的成绩,例如:如何算student表里面的sumgrade字段呢,有什么效率高的方法。sqlserver

解决方案 »

  1.   

    update a set sumgrade=b.stugrade
    from student a
    inner join 
    (select StudentID,SUM(stugrade) as stugrade
    from grade
    group by StudentID
    )b on a.StudentID=b.StudentIDselect * from student
      

  2.   

    left join查询:左边全部显示;右边符合条件就显示,不符合条件则为null.
    right join查询:右边全部显示;左边符合条件就显示,不符合条件则为null.inner join 连接: 两个表完全相匹配的行,才能在结果集中显示出现 
      

  3.   


    在成绩表 grade插入记录时,封装更新student.sumgrade 字段
      

  4.   

    通过子查询就可以执行,你试试:
    update student
    set sumgrade= (select SUM(stugrade) 
               from grade
               where grade.StudentID = student.StudentID
               )select * from student