update result r inner join(select re.studentno from result re where re.SubjectId=(
select su.subjectno from subject su where su.subjectname='深入.NET平台和C#编程'
)
and examdate=(
select max(examdate) from result where subjectid=(
select subjectno from subject where subjectname='深入.NET平台和C#编程'
)
) and studentresult>80) b on r.StudentNo=b.StudentNo
set r.studentresult=r.studentresult+2
where studentresult<=100;
高手帮忙看看 查询更新不辽 在帮忙看看这道题怎么做 mysql数据库
检查“Java Logic”课程最近一次考试。如果有 80分以上的成绩,则每人提2分;否则,每人提5分。最终的成绩不得大于100分
第一步:采用EXISTS检测是否有人考试成绩达到80分以上
第二步:如果成绩有80分以上的,UPDATE语句为参加本次考试的每名学生加2分;否则加5分
update 时,更新的表不能在set和where中用于子查询;
update 时,可以对多个表进行更新(sqlserver不行);
你这个问题 可以使用3元计算的方法来解决
没超过100分的 低于80 加5 小于等于98 +2 否则+1
update result set studentresult =IF(studentresult<80,studentresult+2,代码结果测试了
注意 result: 表名 studentresult :字段名 subjectname:科目名