ls_sql:='merge into jfr_hangyyd a using (select gongddw,hangyfl,sum(jifdl) jifdl from (select gongddw,hangyfl,sum(jifdl) jifdl from jf_jifdl where yuef=:1 and gongddw in (select danwbh from yda_gongddw where cengcbm like :3) and hangyfl is not null group by gongddw,hangyfl union select gongddw,hangyfl,sum(jifdl) jifdl from jf_jifdl'||ls_qn||' where yuef=:1 and gongddw in (select danwbh from yda_gongddw where cengcbm like :3) and hangyfl is not null group by gongddw,hangyfl) group by gongddw,hangyfl) b on (a.hangyfl=b.hangyfl and a.gongddw=b.gongddw and a.yuef=:2 and a.gongddw in (select danwbh from yda_gongddw where cengcbm like :3)) when matched then update set a.qungydl=b.jifdl when not matched then insert(a.gongddw,a.hangyfl,a.yuef) values(b.gongddw,b.hangyfl,:2)'; execute immediate ls_sql using ls_qngy,as_yf,ls_ccbm;
using (select gongddw,hangyfl,sum(jifdl) jifdl from (select gongddw,hangyfl,sum(jifdl) jifdl
from jf_jifdl where yuef=:1 and gongddw in (select danwbh from yda_gongddw where cengcbm like :3) and hangyfl is not null group by gongddw,hangyfl
union
select gongddw,hangyfl,sum(jifdl) jifdl
from jf_jifdl'||ls_qn||' where yuef=:1 and gongddw in (select danwbh from yda_gongddw where cengcbm like :3) and hangyfl is not null group by gongddw,hangyfl)
group by gongddw,hangyfl) b
on (a.hangyfl=b.hangyfl
and a.gongddw=b.gongddw
and a.yuef=:2
and a.gongddw in (select danwbh from yda_gongddw where cengcbm like :3))
when matched then update
set a.qungydl=b.jifdl
when not matched then insert(a.gongddw,a.hangyfl,a.yuef)
values(b.gongddw,b.hangyfl,:2)';
execute immediate ls_sql using ls_qngy,as_yf,ls_ccbm;