我有2长表。
一张学生表 student 里面有成绩sumgrade 字段用来存储学生总成绩。
一张成绩表 grade 里面有stugrade字段表示一个学生每门门课的成绩,例如:如何算student表里面的sumgrade字段呢,有什么效率高的方法。sqlserver
一张学生表 student 里面有成绩sumgrade 字段用来存储学生总成绩。
一张成绩表 grade 里面有stugrade字段表示一个学生每门门课的成绩,例如:如何算student表里面的sumgrade字段呢,有什么效率高的方法。sqlserver
from student a
inner join
(select StudentID,SUM(stugrade) as stugrade
from grade
group by StudentID
)b on a.StudentID=b.StudentIDselect * from student
right join查询:右边全部显示;左边符合条件就显示,不符合条件则为null.inner join 连接: 两个表完全相匹配的行,才能在结果集中显示出现
在成绩表 grade插入记录时,封装更新student.sumgrade 字段
update student
set sumgrade= (select SUM(stugrade)
from grade
where grade.StudentID = student.StudentID
)select * from student