CREATE OR REPLACE VIEW SD_HOSPITAL.VW_SF_ICYWLS ( KMH000, BRID00, XM0000, BRBLH0, YWID00, ICKNBH, ICKH00, YGBH00, ZWXM00, YWCZ00, YWCZBZ, CZRQ00, CZSJ00, FSJE00, FBBH00, KLDH00 ) AS select C.KMH000, --卡面号 C.BRID00, --病人ID D.BRXM00, --病人姓名 D.BRBLH0, --病人病历号 A.YWID00, --业务ID号 A.ICKNBH, --就诊卡内部号 A.ICKH00, --IC卡号 A.YGBH00, --员工编号 B.ZWXM00, --操作员姓名 A.YWCZ00, --业务操作 DECODE(A.YWCZ00,'0','入库','1','售病人卡','2','售员工卡','3','挂失','4','作废','5','退卡','6','取消挂失','7','重制空白卡','8','医保卡登记','9','外院卡登记','A','失效卡回收','其它'), A.CZRQ00, --操作日期 A.CZSJ00, --操作时间 A.FSJE00, --发生金额 D.FBBH00, --费别编号 C.KLDH00 --卡类代号 from IC_YWLS00 A,BM_YGBM00 B,IC_YHXX00 C,BM_BRXXB0 D where A.ICKH00 = C.ICKH00 and C.BRID00 = D.BRID00(+) and A.YGBH00 = B.YGBH00 and a.ywcz00<>'5' and NOT EXISTS ( select brid00,count(*) from ic_yhxx00 where BRID00 = C.BRID00 group by brid00 having count(*) > 1) union all select C.KMH000, --卡面号 --C.BRID00, --病人ID --D.BRXM00, --病人姓名 --D.BRBLH0, --病人病历号 (select brid00 from ic_yhxx00 where instr(ickh00,'#'||c.KMH000||'#'||a.czrq00)>0 ), (select brxm00 from bm_brxxb0 where brid00=(select brid00 from ic_yhxx00 where instr(ickh00,'#'||c.KMH000||'#'||a.czrq00)>0 )), (select brblh0 from bm_brxxb0 where brid00=(select brid00 from ic_yhxx00 where instr(ickh00,'#'||c.KMH000||'#'||a.czrq00)>0 )), A.YWID00, --业务ID号 A.ICKNBH, --就诊卡内部号 A.ICKH00, --IC卡号 A.YGBH00, --员工编号 B.ZWXM00, --操作员姓名 A.YWCZ00, --业务操作 DECODE(A.YWCZ00,'0','入库','1','售病人卡','2','售员工卡','3','挂失','4','作废','5','退卡','6','取消挂失','7','重制空白卡','8','医保卡登记','9','外院卡登记','A','失效卡回收','其它'), A.CZRQ00, --操作日期 A.CZSJ00, --操作时间 A.FSJE00, --发生金额 D.FBBH00, --费别编号 C.KLDH00 --卡类代号 from IC_YWLS00 A,BM_YGBM00 B,IC_YHXX00 C,BM_BRXXB0 D where A.ICKH00 = C.ICKH00 and C.BRID00 = D.BRID00(+) and A.YGBH00 = B.YGBH00 and a.ywcz00='5' and NOT EXISTS ( select brid00,count(*) from ic_yhxx00 where BRID00 = C.BRID00 group by brid00 having count(*) > 1) union all select C.KMH000, --卡面号 C.BRID00, --病人ID D.BRXM00, --病人姓名 D.BRBLH0, --病人病历号 0, --业务ID号 C.ICKNBH, --就诊卡内部号 C.ICKH00, --IC卡号 A.YGBH00, --员工编号 B.ZWXM00, --操作员姓名 ' ', --业务操作 DECODE(A.YWCZ00,'0','入库','1','售病人卡','2','售员工卡','3','挂失','4','作废','5','换卡退卡','C','换卡退卡','D','换卡退卡','6','取消挂失','7','重制空白卡','8','医保卡登记','9','外院卡登记','A','失效卡回收','其它'), A.CZRQ00, --操作日期 A.CZSJ00, --操作时间 A.FSJE00, --发生金额 D.FBBH00, --费别编号 C.KLDH00 --卡类代号 from IC_YWLS00 A,BM_YGBM00 B,IC_YHXX00 C,BM_BRXXB0 D where A.ICKH00 = C.ICKH00 and C.BRID00 = D.BRID00(+) and A.YGBH00 = B.YGBH00 -- and A.YWCZ00 = '5' --查询出是退卡的记录当作换卡的记录 and EXISTS ( select brid00,count(*) from ic_yhxx00 where BRID00 = C.BRID00 group by brid00 having count(*) > 1) order by ICKH00 /