为了实现定期job从课堂参与表汇总数据到课堂评分表,如在目标表没有数据,就插入,否则更新,查阅语法,采用如下方法
merge into O_CLASSAPPRAISEINFO a
using(select a.classid,count(b.appraise) commentnumber,count(distinct a.userid) engagednumber,ceil(sum(b.appraise)/count(distinct b.userid)) starlevel
from o_classpartyinfo a,o_classpartyinfo b
where a.logid=b.logid and a.classid=b.classid and b.appraise is not null
group by a.classid
) b
on (a.classid=b.classid)
when matched then update set a.appraisename=b.commentnumber,a.engagednumber=b.engagednumber,a.starlevel=b.starlevel,
when not matched then insert (a.appraiseid,a.classid,a.appraisename,a.engagednumber,a.starlevel,a.createtime)
values(lpad(SEQ_ONLINEMV.nextval,16,'0'),b.classid,b.commentnumber,b.engagednumber,b.starlevel,sysdate)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-668213/
,如需转载,请注明出处,否则将追究法律责任。