PROMPT 105 科室核算项目结算收入报表 SP_ZY_KSHSXMSR_TS create or replace procedure SP_ZY_KSHSXMSR_TS ( as_KSRQ00 in char, --开始日期 as_KSSJ00 in char, --开始时间 as_JSRQ00 in char, --结束日期 as_JSSJ00 in char, --结束时间 as_JSJZ00 in char, --结算记帐类别 0-按结算统计 1-按记帐统计 as_TJLB00 in number, --统计类别 1:一级 2:二级 ad_ID0000 out number, --统计报表对应的ID as_YHMSG0 out varchar, --存储过程提示的错误信息 as_SYSMSG out varchar, --系统提示的错误信息 as_YYID00 in varchar default '0', --分院ID as_YSZBZ0 in varchar default '0' --医生组 ) as -- MODIFICATION HISTORY -- Person Date Comments -- dsm 2015.03.20 增加as_YYID00 for ZYSF-20150228-005 -- zhangyc 2015.04.08 修正统计报错 by ZYSF-20150408-006 ls_XMBH00 ZY_FYMX00.XMBH00%TYPE; ls_HJJE00 ZY_FYMX00.HJJE00%TYPE; ls_KDBQ00 ZY_FYMX00.KDBQ00%TYPE; ls_KDKS00 ZY_FYMX00.KDKS00%TYPE; ls_ZXKS00 ZY_FYMX00.ZXKS00%TYPE; ls_BH0000 BM_YYHSXM.BH0000%TYPE; Vcounter number(5); ls_exist NUMBER(5); ls_YSZID0 ZY_FYMX00.YSZID0%type; ls_error varchar2(100); CURSOR CUR_ZY_CYBRQFTJ_JS0000 IS select A.XMBH00,sum(A.HJJE00) HJJE00,A.KDBQ00,A.KDKS00,A.ZXKS00,decode(as_YSZBZ0,'0',0,nvl(c.yszid0,0)) YSZID0 from ZY_FYMX00 A,ZY_JZB000 B,ZY_BRFY00 C,BM_BMBM00 D where C.JZDH00=B.JZDH00 and B.ZYID00=C.ZYID00 AND A.DJH000=C.DJH000 AND B.JZRQ00>=as_KSRQ00 AND B.JZRQ00<=as_JSRQ00 and B.JZRQ00||B.JZSJ00>=as_KSRQ00||as_KSSJ00 AND B.JZRQ00||B.JZSJ00<=as_JSRQ00||as_JSSJ00 And A.KDBQ00=D.BMBH00 and (d.YYID00 = as_YYID00 or as_YYID00 = '0') group by A.KDBQ00,A.KDKS00,A.ZXKS00,A.XMBH00,decode(as_YSZBZ0,'0',0,nvl(c.yszid0,0)); CURSOR CUR_ZY_CYBRQFTJ_JZ0000 IS select A.XMBH00,sum(A.HJJE00) HJJE00,A.KDBQ00,A.KDKS00,A.ZXKS00,decode(as_YSZBZ0,'0',0,nvl(c.yszid0,0)) YSZID0 from ZY_FYMX00 A,ZY_BRFY00 C,BM_BMBM00 D where A.DJH000=C.DJH000 AND C.CZRQ00>=as_KSRQ00 AND C.CZRQ00<=as_JSRQ00 and C.CZRQ00||C.CZSJ00>=as_KSRQ00||as_KSSJ00 AND C.CZRQ00||C.CZSJ00<=as_JSRQ00||as_JSSJ00 And A.KDBQ00=D.BMBH00 and (d.YYID00 = as_YYID00 or as_YYID00 = '0') group by A.KDBQ00,A.KDKS00,A.ZXKS00,A.XMBH00,decode(as_YSZBZ0,'0',0,nvl(c.yszid0,0)); BEGIN select SQ_BM_YYSFTJ_ID0000.nextval into ad_ID0000 from dual; ls_error:='1'; --SFXM95 :ZXKS00 IF as_JSJZ00='0' THEN OPEN CUR_ZY_CYBRQFTJ_JS0000 ; ELSE OPEN CUR_ZY_CYBRQFTJ_JZ0000 ; END IF; LOOP IF as_JSJZ00='0' THEN FETCH CUR_ZY_CYBRQFTJ_JS0000 INTO ls_XMBH00,ls_HJJE00,ls_KDBQ00,ls_KDKS00,ls_ZXKS00,ls_YSZID0; EXIT WHEN CUR_ZY_CYBRQFTJ_JS0000%NOTFOUND; ELSE FETCH CUR_ZY_CYBRQFTJ_JZ0000 INTO ls_XMBH00,ls_HJJE00,ls_KDBQ00,ls_KDKS00,ls_ZXKS00,ls_YSZID0; EXIT WHEN CUR_ZY_CYBRQFTJ_JZ0000%NOTFOUND; END IF; BEGIN if as_TJLB00=1 then -- 一级 select trim(substr(A.BH0000,1,2)) into ls_BH0000 from BM_YYHSXM A,BM_YYSFXM B where A.HSXMID = B.HSXMID and B.SFXMID=ls_XMBH00 ; end if; if as_TJLB00=2 then -- 二级 select A.XSXLH0 into ls_BH0000 from BM_YYHSXM A,BM_YYSFXM B where A.HSXMID=B.HSXMID and B.SFXMID=ls_XMBH00 ; -- select A.XLH000 into ls_BH0000 from BM_PARAMS A,BM_YYSFXM B where A.ID0000 = B.HSXMID and B.SFXMID=ls_XMBH00; if SQL%NOTFOUND then select '00' into ls_BH0000 from dual; end if; end if; EXCEPTION WHEN OTHERS THEN select '00' into ls_BH0000 from dual; end; if ls_BH0000 = '01' then Update BM_YYSFTJ Set SFXM01 = NVL(SFXM01,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM01,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '02' then Update BM_YYSFTJ Set SFXM02 = NVL(SFXM02,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM02,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '03' then Update BM_YYSFTJ Set SFXM03 = NVL(SFXM03,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM03,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '04' then Update BM_YYSFTJ Set SFXM04 = NVL(SFXM04,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111 ; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM04,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '05' then Update BM_YYSFTJ Set SFXM05 = NVL(SFXM05,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM05,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '06' then Update BM_YYSFTJ Set SFXM06 = NVL(SFXM06,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM06,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '07' then Update BM_YYSFTJ Set SFXM07 = NVL(SFXM07,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM07,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '08' then Update BM_YYSFTJ Set SFXM08 = NVL(SFXM08,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM08,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '09' then Update BM_YYSFTJ Set SFXM09 = NVL(SFXM09,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM09,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '10' then Update BM_YYSFTJ Set SFXM10 = NVL(SFXM10,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM10,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '11' then Update BM_YYSFTJ Set SFXM11 = NVL(SFXM11,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM11,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '12' then Update BM_YYSFTJ Set SFXM12 = NVL(SFXM12,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM12,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '13' then Update BM_YYSFTJ Set SFXM13 = NVL(SFXM13,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM13,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '14' then Update BM_YYSFTJ Set SFXM14 = NVL(SFXM14,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM14,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '15' then Update BM_YYSFTJ Set SFXM15 = NVL(SFXM15,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM15,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '16' then Update BM_YYSFTJ Set SFXM16 = NVL(SFXM16,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM16,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '17' then Update BM_YYSFTJ Set SFXM17 = NVL(SFXM17,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM17,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '18' then Update BM_YYSFTJ Set SFXM18 = NVL(SFXM18,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM18,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '19' then Update BM_YYSFTJ Set SFXM19 = NVL(SFXM19,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM19,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '20' then Update BM_YYSFTJ Set SFXM20 = NVL(SFXM20,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM20,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '21' then Update BM_YYSFTJ Set SFXM21 = NVL(SFXM21,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM21,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '22' then Update BM_YYSFTJ Set SFXM22 = NVL(SFXM22,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM22,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '23' then Update BM_YYSFTJ Set SFXM23 = NVL(SFXM23,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM23,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '24' then Update BM_YYSFTJ Set SFXM24 = NVL(SFXM24,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM24,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '25' then Update BM_YYSFTJ Set SFXM25 = NVL(SFXM25,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM25,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '26' then Update BM_YYSFTJ Set SFXM26 = NVL(SFXM26,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM26,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '27' then Update BM_YYSFTJ Set SFXM27 = NVL(SFXM27,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM27,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '28' then Update BM_YYSFTJ Set SFXM28 = NVL(SFXM28,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM28,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '29' then Update BM_YYSFTJ Set SFXM29 = NVL(SFXM29,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM29,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '30' then Update BM_YYSFTJ Set SFXM30 = NVL(SFXM30,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM30,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '31' then Update BM_YYSFTJ Set SFXM31 = NVL(SFXM31,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM31,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; -- 32,33,34 手术费, 特殊材料,麻醉费 写死 elsif ls_BH0000 = '32' then select count(*) into Vcounter from BM_BQKS00 where bqh000=ls_KDBQ00 and ksh000=ls_ZXKS00; if Vcounter>0 then --本病区执行的 begin Update BM_YYSFTJ Set SFXM32 = NVL(SFXM32,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM32,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; end; else begin --其他科室 Update BM_YYSFTJ Set SFXM92 = NVL(SFXM92,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM92,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; end; end if; elsif ls_BH0000 = '33' then select count(*) into Vcounter from BM_BQKS00 where bqh000=ls_KDBQ00 and ksh000=ls_ZXKS00; if Vcounter>0 then --本病区执行的 begin Update BM_YYSFTJ Set SFXM33 = NVL(SFXM33,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM33,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; end; else begin Update BM_YYSFTJ Set SFXM93 = NVL(SFXM93,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM93,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; end; end if; elsif ls_BH0000 = '34' then select count(*) into Vcounter from BM_BQKS00 where bqh000=ls_KDBQ00 and ksh000=ls_ZXKS00; if Vcounter>0 then --本病区执行的 begin Update BM_YYSFTJ Set SFXM34 = NVL(SFXM34,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM34,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; end; else begin Update BM_YYSFTJ Set SFXM94 = NVL(SFXM94,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM94,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; end; end if; elsif ls_BH0000 = '35' then Update BM_YYSFTJ Set SFXM35 = NVL(SFXM35,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM35,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '36' then Update BM_YYSFTJ Set SFXM36 = NVL(SFXM36,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM36,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '37' then Update BM_YYSFTJ Set SFXM37 = NVL(SFXM37,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM37,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '38' then Update BM_YYSFTJ Set SFXM38 = NVL(SFXM38,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM38,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '39' then Update BM_YYSFTJ Set SFXM39 = NVL(SFXM39,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM39,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '40' then Update BM_YYSFTJ Set SFXM40 = NVL(SFXM40,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM40,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '41' then Update BM_YYSFTJ Set SFXM41 = NVL(SFXM41,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM41,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '42' then Update BM_YYSFTJ Set SFXM42 = NVL(SFXM42,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM42,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '43' then Update BM_YYSFTJ Set SFXM43 = NVL(SFXM43,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM43,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '44' then Update BM_YYSFTJ Set SFXM44 = NVL(SFXM44,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM44,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '45' then Update BM_YYSFTJ Set SFXM45 = NVL(SFXM45,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM45,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '46' then Update BM_YYSFTJ Set SFXM46 = NVL(SFXM46,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM46,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '47' then Update BM_YYSFTJ Set SFXM47 = NVL(SFXM47,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM47,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '48' then Update BM_YYSFTJ Set SFXM48 = NVL(SFXM48,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM48,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '49' then Update BM_YYSFTJ Set SFXM49 = NVL(SFXM49,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM49,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '50' then Update BM_YYSFTJ Set SFXM50 = NVL(SFXM50,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM50,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '51' then Update BM_YYSFTJ Set SFXM51 = NVL(SFXM51,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM51,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '52' then Update BM_YYSFTJ Set SFXM52 = NVL(SFXM52,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM52,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '53' then Update BM_YYSFTJ Set SFXM53 = NVL(SFXM53,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM53,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '54' then Update BM_YYSFTJ Set SFXM54 = NVL(SFXM54,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM54,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '55' then Update BM_YYSFTJ Set SFXM55 = NVL(SFXM55,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111 ; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM55,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '56' then Update BM_YYSFTJ Set SFXM56 = NVL(SFXM56,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111 ; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM56,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '57' then Update BM_YYSFTJ Set SFXM57 = NVL(SFXM57,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM57,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '58' then Update BM_YYSFTJ Set SFXM58 = NVL(SFXM58,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM58,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '59' then Update BM_YYSFTJ Set SFXM59 = NVL(SFXM59,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM59,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '60' then Update BM_YYSFTJ Set SFXM60 = NVL(SFXM60,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM60,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '61' then Update BM_YYSFTJ Set SFXM61 = NVL(SFXM61,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM61,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '62' then Update BM_YYSFTJ Set SFXM62 = NVL(SFXM62,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM62,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '63' then Update BM_YYSFTJ Set SFXM63 = NVL(SFXM63,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM63,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '64' then Update BM_YYSFTJ Set SFXM64 = NVL(SFXM64,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM64,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '65' then Update BM_YYSFTJ Set SFXM65 = NVL(SFXM65,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM65,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '66' then Update BM_YYSFTJ Set SFXM66 = NVL(SFXM66,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM66,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '67' then Update BM_YYSFTJ Set SFXM67 = NVL(SFXM67,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM67,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '68' then Update BM_YYSFTJ Set SFXM68 = NVL(SFXM68,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM68,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '69' then Update BM_YYSFTJ Set SFXM69 = NVL(SFXM69,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM69,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '70' then Update BM_YYSFTJ Set SFXM70 = NVL(SFXM70,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM70,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '71' then Update BM_YYSFTJ Set SFXM71 = NVL(SFXM71,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM71,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '72' then Update BM_YYSFTJ Set SFXM72 = NVL(SFXM72,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM72,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '73' then Update BM_YYSFTJ Set SFXM73 = NVL(SFXM73,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM73,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '74' then Update BM_YYSFTJ Set SFXM74 = NVL(SFXM74,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM74,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '75' then Update BM_YYSFTJ Set SFXM75 = NVL(SFXM75,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM75,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '76' then Update BM_YYSFTJ Set SFXM76 = NVL(SFXM76,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM76,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '77' then Update BM_YYSFTJ Set SFXM77 = NVL(SFXM77,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM77,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '78' then Update BM_YYSFTJ Set SFXM78 = NVL(SFXM78,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM78,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '79' then Update BM_YYSFTJ Set SFXM79 = NVL(SFXM79,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM79,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; elsif ls_BH0000 = '80' then Update BM_YYSFTJ Set SFXM80 = NVL(SFXM80,0)+ls_HJJE00,XMHJ00=NVL(XMHJ00,0)+ls_HJJE00 where BMBH00 = ls_KDBQ00 and ID0000=ad_ID0000 and SFXM400=ls_YSZID0 and SFXM95=11111; if SQL%NOTFOUND then Insert into BM_YYSFTJ(BMBH00,SFXM80,ID0000,XMHJ00,SFXM95,SFXM400) values(ls_KDBQ00,ls_HJJE00,ad_ID0000,ls_HJJE00,11111,ls_YSZID0); end if; end if; END LOOP; IF as_JSJZ00='0' THEN CLOSE CUR_ZY_CYBRQFTJ_JS0000; ELSE CLOSE CUR_ZY_CYBRQFTJ_JZ0000; END IF; if as_YSZBZ0='1' then --插入按病区合计 Insert into BM_YYSFTJ(ID0000,BMBH00,SFXM01,SFXM02,SFXM03,SFXM04,SFXM05,SFXM06,SFXM07,SFXM08,SFXM09,SFXM10,SFXM11,SFXM12,SFXM13,SFXM14,SFXM15,SFXM16,SFXM17,SFXM18,SFXM19,SFXM20, SFXM21,SFXM22,SFXM23,SFXM24,SFXM25,SFXM26,SFXM27,SFXM28,SFXM29,SFXM30,SFXM31,SFXM32,SFXM33,SFXM34,SFXM35,SFXM36,SFXM37,SFXM38,SFXM39,SFXM40, SFXM41,SFXM42,SFXM43,SFXM44,SFXM45,SFXM46,SFXM47,SFXM48,SFXM49,SFXM50, SFXM51,SFXM52,SFXM53,SFXM54,SFXM55,SFXM56,SFXM57,SFXM58,SFXM59,SFXM60, SFXM61,SFXM62,SFXM63,SFXM64,SFXM65,SFXM66,SFXM67,SFXM68,SFXM69,SFXM70,SFXM71,SFXM72,SFXM73,SFXM74,SFXM75, SFXM76,SFXM77,SFXM78,SFXM79,SFXM80,SFXM81,SFXM82,SFXM83,SFXM84,SFXM85, SFXM86,SFXM87,SFXM88,SFXM89,SFXM90,SFXM91,SFXM92,SFXM93,SFXM94,SFXM95,XMHJ00,YPHJ00,SFXM400) select ad_ID0000,BMBH00,sum(SFXM01),sum(SFXM02),sum(SFXM03),sum(SFXM04),sum(SFXM05),sum(SFXM06),sum(SFXM07),sum(SFXM08),sum(SFXM09),sum(SFXM10), sum(SFXM11),sum(SFXM12),sum(SFXM13),sum(SFXM14),sum(SFXM15),sum(SFXM16),sum(SFXM17),sum(SFXM18),sum(SFXM19),sum(SFXM20), sum(SFXM21),sum(SFXM22),sum(SFXM23),sum(SFXM24),sum(SFXM25),sum(SFXM26),sum(SFXM27),sum(SFXM28),sum(SFXM29),sum(SFXM30), sum(SFXM31),sum(SFXM32),sum(SFXM33),sum(SFXM34),sum(SFXM35),sum(SFXM36),sum(SFXM37),sum(SFXM38),sum(SFXM39),sum(SFXM40), sum(SFXM41),sum(SFXM42),sum(SFXM43),sum(SFXM44),sum(SFXM45),sum(SFXM46),sum(SFXM47),sum(SFXM48),sum(SFXM49),sum(SFXM50), sum(SFXM51),sum(SFXM52),sum(SFXM53),sum(SFXM54),sum(SFXM55),sum(SFXM56),sum(SFXM57),sum(SFXM58),sum(SFXM59),sum(SFXM60), sum(SFXM61),sum(SFXM62),sum(SFXM63),sum(SFXM64),sum(SFXM65),sum(SFXM66),sum(SFXM67),sum(SFXM68),sum(SFXM69),sum(SFXM70), sum(SFXM71),sum(SFXM72),sum(SFXM73),sum(SFXM74),sum(SFXM75),sum(SFXM76),sum(SFXM77),sum(SFXM78),sum(SFXM79),sum(SFXM80), sum(SFXM81),sum(SFXM82),sum(SFXM83),sum(SFXM84),sum(SFXM85),sum(SFXM86),sum(SFXM87),sum(SFXM88),sum(SFXM89),sum(SFXM90), sum(SFXM91),sum(SFXM92),sum(SFXM93),sum(SFXM94),sum(SFXM95), sum(XMHJ00),sum(YPHJ00),-1 from BM_YYSFTJ where ID0000 = ad_ID0000 group by BMBH00; end if; ls_error:='2'; update BM_YYSFTJ a set BZSM01=(select BMMC00 from BM_BMBM00 where BMBH00=a.BMBH00) where ID0000=ad_ID0000; ls_error:='3'; if as_YSZBZ0='1' then update BM_YYSFTJ a set BZSM01=nvl((select ' '||YSZMC0 from ZS_YSZ000 where YSZID0=a.SFXM400),' 其他') where ID0000=ad_ID0000 and SFXM400>=0; end if; ls_error:='4'; --欠费金额 update BM_YYSFTJ I SET YPHJ00=(SELECT nvl(H.JFJE00,0) FROM (SELECT SUM(CYYSK0-CYYTK0) JFJE00,C.DQKS00 FROM ZY_JZB000 B,ZY_BRXXB0 C where B.ZYID00=C.ZYID00 AND B.JZRQ00>=as_KSRQ00 AND B.JZRQ00<=as_JSRQ00 group by C.DQKS00) H where H.DQKS00=I.BMBH00 ) where ID0000= ad_ID0000 ; --插入纵向合计 Insert into BM_YYSFTJ(ID0000,BMBH00,SFXM01,SFXM02,SFXM03,SFXM04,SFXM05,SFXM06,SFXM07,SFXM08,SFXM09,SFXM10,SFXM11,SFXM12,SFXM13,SFXM14,SFXM15,SFXM16,SFXM17,SFXM18,SFXM19,SFXM20, SFXM21,SFXM22,SFXM23,SFXM24,SFXM25,SFXM26,SFXM27,SFXM28,SFXM29,SFXM30,SFXM31,SFXM32,SFXM33,SFXM34,SFXM35,SFXM36,SFXM37,SFXM38,SFXM39,SFXM40, SFXM41,SFXM42,SFXM43,SFXM44,SFXM45,SFXM46,SFXM47,SFXM48,SFXM49,SFXM50, SFXM51,SFXM52,SFXM53,SFXM54,SFXM55,SFXM56,SFXM57,SFXM58,SFXM59,SFXM60, SFXM61,SFXM62,SFXM63,SFXM64,SFXM65,SFXM66,SFXM67,SFXM68,SFXM69,SFXM70,SFXM71,SFXM72,SFXM73,SFXM74,SFXM75, SFXM76,SFXM77,SFXM78,SFXM79,SFXM80,SFXM81,SFXM82,SFXM83,SFXM84,SFXM85, SFXM86,SFXM87,SFXM88,SFXM89,SFXM90,SFXM91,SFXM92,SFXM93,SFXM94,SFXM95,XMHJ00,YPHJ00) select ad_ID0000,999999999,sum(SFXM01),sum(SFXM02),sum(SFXM03),sum(SFXM04),sum(SFXM05),sum(SFXM06),sum(SFXM07),sum(SFXM08),sum(SFXM09),sum(SFXM10), sum(SFXM11),sum(SFXM12),sum(SFXM13),sum(SFXM14),sum(SFXM15),sum(SFXM16),sum(SFXM17),sum(SFXM18),sum(SFXM19),sum(SFXM20), sum(SFXM21),sum(SFXM22),sum(SFXM23),sum(SFXM24),sum(SFXM25),sum(SFXM26),sum(SFXM27),sum(SFXM28),sum(SFXM29),sum(SFXM30), sum(SFXM31),sum(SFXM32),sum(SFXM33),sum(SFXM34),sum(SFXM35),sum(SFXM36),sum(SFXM37),sum(SFXM38),sum(SFXM39),sum(SFXM40), sum(SFXM41),sum(SFXM42),sum(SFXM43),sum(SFXM44),sum(SFXM45),sum(SFXM46),sum(SFXM47),sum(SFXM48),sum(SFXM49),sum(SFXM50), sum(SFXM51),sum(SFXM52),sum(SFXM53),sum(SFXM54),sum(SFXM55),sum(SFXM56),sum(SFXM57),sum(SFXM58),sum(SFXM59),sum(SFXM60), sum(SFXM61),sum(SFXM62),sum(SFXM63),sum(SFXM64),sum(SFXM65),sum(SFXM66),sum(SFXM67),sum(SFXM68),sum(SFXM69),sum(SFXM70), sum(SFXM71),sum(SFXM72),sum(SFXM73),sum(SFXM74),sum(SFXM75),sum(SFXM76),sum(SFXM77),sum(SFXM78),sum(SFXM79),sum(SFXM80), sum(SFXM81),sum(SFXM82),sum(SFXM83),sum(SFXM84),sum(SFXM85),sum(SFXM86),sum(SFXM87),sum(SFXM88),sum(SFXM89),sum(SFXM90), sum(SFXM91),sum(SFXM92),sum(SFXM93),sum(SFXM94),sum(SFXM95), sum(XMHJ00),sum(YPHJ00) from BM_YYSFTJ where ID0000 = ad_ID0000 and SFXM400>=0; --格式化 Update BM_YYSFTJ set SFXM01=nvl(SFXM01,0),SFXM02=nvl(SFXM02,0),SFXM03=nvl(SFXM03,0),SFXM04=nvl(SFXM04,0),SFXM05=nvl(SFXM05,0),SFXM06=nvl(SFXM06,0),SFXM07=nvl(SFXM07,0),SFXM08=nvl(SFXM08,0),SFXM09=nvl(SFXM09,0),SFXM10=nvl(SFXM10,0), SFXM11=nvl(SFXM11,0),SFXM12=nvl(SFXM12,0),SFXM13=nvl(SFXM13,0),SFXM14=nvl(SFXM14,0),SFXM15=nvl(SFXM15,0),SFXM16=nvl(SFXM16,0),SFXM17=nvl(SFXM17,0),SFXM18=nvl(SFXM18,0),SFXM19=nvl(SFXM19,0),SFXM20=nvl(SFXM20,0), SFXM21=nvl(SFXM21,0),SFXM22=nvl(SFXM22,0),SFXM23=nvl(SFXM23,0),SFXM24=nvl(SFXM24,0),SFXM25=nvl(SFXM25,0),SFXM26=nvl(SFXM26,0),SFXM27=nvl(SFXM27,0),SFXM28=nvl(SFXM28,0),SFXM29=nvl(SFXM29,0),SFXM30=nvl(SFXM30,0), SFXM31=nvl(SFXM31,0),SFXM32=nvl(SFXM32,0),SFXM33=nvl(SFXM33,0),SFXM34=nvl(SFXM34,0),SFXM35=nvl(SFXM35,0),SFXM36=nvl(SFXM36,0),SFXM37=nvl(SFXM37,0),SFXM38=nvl(SFXM38,0),SFXM39=nvl(SFXM39,0),SFXM40=nvl(SFXM40,0), SFXM41=nvl(SFXM41,0),SFXM42=nvl(SFXM42,0),SFXM43=nvl(SFXM43,0),SFXM44=nvl(SFXM44,0),SFXM45=nvl(SFXM45,0),SFXM46=nvl(SFXM46,0),SFXM47=nvl(SFXM47,0),SFXM48=nvl(SFXM48,0),SFXM49=nvl(SFXM49,0),SFXM50=nvl(SFXM50,0), SFXM51=nvl(SFXM51,0),SFXM52=nvl(SFXM52,0),SFXM53=nvl(SFXM53,0),SFXM54=nvl(SFXM54,0),SFXM55=nvl(SFXM55,0),SFXM56=nvl(SFXM56,0),SFXM57=nvl(SFXM57,0),SFXM58=nvl(SFXM58,0),SFXM59=nvl(SFXM59,0),SFXM60=nvl(SFXM60,0), SFXM61=nvl(SFXM61,0),SFXM62=nvl(SFXM62,0),SFXM63=nvl(SFXM63,0),SFXM64=nvl(SFXM64,0),SFXM65=nvl(SFXM65,0),SFXM66=nvl(SFXM66,0),SFXM67=nvl(SFXM67,0),SFXM68=nvl(SFXM68,0),SFXM69=nvl(SFXM69,0),SFXM70=nvl(SFXM70,0), SFXM71=nvl(SFXM71,0),SFXM72=nvl(SFXM72,0),SFXM73=nvl(SFXM73,0),SFXM74=nvl(SFXM74,0),SFXM75=nvl(SFXM75,0),SFXM76=nvl(SFXM76,0),SFXM77=nvl(SFXM77,0),SFXM78=nvl(SFXM78,0),SFXM79=nvl(SFXM79,0),SFXM80=nvl(SFXM80,0), SFXM81=nvl(SFXM81,0),SFXM82=nvl(SFXM82,0),SFXM83=nvl(SFXM83,0),SFXM84=nvl(SFXM84,0),SFXM85=nvl(SFXM85,0),SFXM86=nvl(SFXM86,0),SFXM87=nvl(SFXM87,0),SFXM88=nvl(SFXM88,0),SFXM89=nvl(SFXM89,0),SFXM90=nvl(SFXM90,0), SFXM91=nvl(SFXM91,0),SFXM92=nvl(SFXM92,0),SFXM93=nvl(SFXM93,0),SFXM94=nvl(SFXM94,0),SFXM95=nvl(SFXM95,0),XMHJ00=nvl(XMHJ00,0),YPHJ00=nvl(YPHJ00,0) WHERE ID0000 = ad_ID0000; commit; EXCEPTION WHEN OTHERS THEN as_YHMSG0:=ls_error||'出错原因不详,请记录此信息并和系统管理员联系!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_ZY_KSHSXMSR_TS('||as_KSRQ00||','||as_JSRQ00||',ad_ID0000,as_YHMSG0,as_SYSMSG',1,150); ROLLBACK; END SP_ZY_KSHSXMSR_TS; / --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --modify end.