我有2长表。
一张学生表 student 里面有成绩sumgrade 字段用来存储学生总成绩。
一张成绩表 grade 里面有stugrade字段表示一个学生每门门课的成绩,例如:
如何算student表里面的sumgrade字段呢,有什么效率高的方法。
sqlserver
------解决方案--------------------
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.StudentID
select * from student
------解决方案--------------------
left join查询:左边全部显示;右边符合条件就显示,不符合条件则为null.
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