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