insert into exam (cgno,exname,infee,outfee ,certcc,certgradecc,rstime,retime,estime,eetime ,elocation,certdate,certindate,introhtml ,isopen,isresultopen,isscored,fgno,isdel ,) values (#cgno#,#exname#,#infee#,#outfee# ,#certcc#,#certgradecc#,#rstime#,#retime#,#estime#,#eetime# ,#elocation#,#certdate#,#certindate#,#introhtml# ,#isopen#,0,#isscored#,#fgno#,0 ,) SELECT LAST_INSERT_ID() update exam set ,exname =#exname# ,infee =#infee# ,outfee =#outfee# ,certcc =#certcc# ,certgradecc =#certgradecc# ,rstime =#rstime# ,retime =#retime# ,estime =#estime# ,eetime =#eetime# ,elocation =#elocation# ,certdate =#certdate# ,certindate =#certindate# ,introhtml =#introhtml# ,isopen =#isopen# ,fgno =#fgno# where exno=#exno# update exam a inner join ( select count(userno) cntuser, exno from examuser where exno = #exno# group by exno ) b on b.exno=a.exno set a.uip=#uip# ,a.uno=#uno# ,a.isdel = 1 where a.exno=#exno# and b.cntuser=0 and a.isdel=0; insert ignore into examuser(exno,userno,status,pstatus,avrg,certdate,certindate,cdt,cno,udt,uno,uip) values (#exno#,#userno#,#status#,#pstatus#,#avrg#,#certdate#,#certindate#,) insert into examuserdelbk(exno,userno,status,payno,pino,pstatus,epoint1,epoint2,epoint3,avrg,ispass,certdate,certindate,cdt,cno,udt,uno,uip) select exno,userno,status,payno,pino,pstatus,epoint1,epoint2,epoint3,avrg,ispass,certdate,certindate,now(),cno,udt,uno,uip from examuser a where a.exno=#exno# and a.userno in ($usernos$) and a.pstatus in(4,8); delete from examuser where exno=#exno# and userno in ( select a.userno from ( select a.userno from examuser a where a.exno=#exno# and a.userno in ($usernos$) and a.pstatus in(4,8) ) a ) insert into examuser(exno,userno,status,pstatus,avrg,certdate,certindate,cdt,cno,udt,uno,uip) select #exno# exno,#Ds[].userno# userno,#Ds[].status# status,#Ds[].pstatus# pstatus,#Ds[].avrg# avrg,#certdate# certdate,#certindate# certindate,now() cdt,#uno# cno,now() udt,#uno# uno,#uip# uip update examuser a inner join ( select #exno# exno,#Ds[].userno# userno,#Ds[].epoint1# epoint1,#Ds[].epoint2# epoint2,#Ds[].epoint3# epoint3,#Ds[].avrg# avrg,#Ds[].ispass# ispass ) b on b.userno=a.userno set a.epoint1=b.epoint1,a.epoint2=b.epoint2,a.epoint3=b.epoint3,a.avrg=b.avrg,a.ispass=b.ispass ,a.udt=now(),a.uno=#uno#,a.uip=#uip# where a.exno=#exno#; update exam set ,isscored=1 where exno=#exno#; insert into examuserrenew (exno,userno,certtime,certdate,certindate,renewreason,certidx,isfirst,) select a.exno,a.userno,now(),a2.certdate,a2.certindate,'시험합격',row_number() over (order by a.cdt) + ifnull(max(d.certidx), 0),1, from examuser a inner join exam a2 on a2.exno=a.exno left outer join examuserrenew b on b.exno=a.exno and b.userno=a.userno left outer join exam c on c.certcc=a2.certcc and c.certgradecc=a2.certgradecc left outer join examuserrenew d on d.exno=c.exno and year(d.certtime)=year(a2.certdate) where a.exno=#exno# and a.pstatus=1 and a.ispass=1 and b.exno is null group by a.exno,a.userno,a2.certdate,a2.certindate update exam set ,isresultopen=#isresultopen# where exno=#exno#; update examuser set ,certdate=#certdate#,certindate=#certindate# where exno=#exno# and userno=#userno#; insert into examuserrenew (exno,userno,certtime,certdate,certindate,renewreason,isfirst,certidx,) select a.exno,#userno#,now(),#certdate#,#certindate#,#renewreason#,0,max(a.certidx),now(),#uno#,now(),#uno#,#uip# from( select a.exno,ifnull(max(d.certidx), 0)+1 certidx from examuser a inner join exam a2 on a2.exno=a.exno left outer join exam c on c.certcc=a2.certcc and c.certgradecc=a2.certgradecc left outer join examuserrenew d on d.exno=c.exno and year(d.certtime)=year(a.certdate) where a.exno=#exno# group by a.exno,a.userno,a.certdate,a.certindate ) a