CREATE OR REPLACE FUNCTION sf_xmlh_bqye00 (vjkrq00 varchar2 ,vjksj00 varchar2) return varchar2 is --住院本期余额计算 vbqye00 number; begin select sum(bqye00) into vbqye00 from ( select sum(h.JFJE00) bqye00,5.1 from ZY_BRJFB0 h,ZY_BRXXB0 i where h.JFBZ00<>'2' and h.JZDH00=0 and h.zyid00=i.zyid00 and h.JFRQ00||''<=vjkrq00 and h.jfrq00||h.jfsj00<=vjkrq00||vjksj00 and (h.PLBH00 in ('4','8') or ((h.PLBH00='3' and h.ZFFS00 in (1,2,8,24,25) and h.JSLX00='3'))) union all select sum(h.JFJE00) bqye00,5.1 from ZY_BRJFB0 h,ZY_JZB000 i,ZY_BRXXB0 m where h.JZDH00=i.JZDH00 and i.ZYID00=m.ZYID00 and i.JZRQ00>=vjkrq00 and i.jzrq00||i.jzsj00>vjkrq00||vjksj00 and h.JFRQ00<=vjkrq00 and h.jfrq00||h.jfsj00<=vjkrq00||vjksj00 and h.JFBZ00<>'2' and (h.PLBH00 in ('4','8') or (h.PLBH00='3' and h.ZFFS00 in (1,2,8,24,25) and h.JSLX00='3'))); return vbqye00; end;