下面的语句怪问题:我把a表的数据插入到b表中,同时通过c表的数据更新b表,a表的条件中clfl 为'1','2','3',但是有时候偶尔会把 clfl is null的数据插入到b表中
INSERT INTO YBXX.YB_FYMATCH
( HOSBH , LX , ZWMC , JJDW , CDXZ , FWXMBM , SRM1 , SRM2 , YBZXDM, YBXZBZ, ZXZT, ZXWYM )
SELECT A.BH, '2', A.MC, D.YBZXDM, A.CLFL, A.YLBZBH,
A.SRM1, A.SRM2, C.YBCLBH, DECODE(C.XY_DJXEBZ, '是','1', '1', '1','0'),
DECODE(C.YBCLBH, NULL, 'A','B'), DECODE(C.YBCLBH, NULL, '', '2')
FROM YLFYB A , YBXX.YB_FYMATCH B, YBXX.YB_CLDIC C, YBXX.YB_DICPP D
WHERE A.CLFL IN ('1','2','3') AND A.FS NOT IN ('1','M','Y','Z','C')
AND D.FLDM = '009'
AND A.BH = B.HOSBH(+)
AND B.HOSBH IS NULL
AND A.YBBM = C.OLDYBBM(+)
AND A.DW = D.HOSMC;
这种问题有时候出现有时候不出现
INSERT INTO YBXX.YB_FYMATCH
( HOSBH , LX , ZWMC , JJDW , CDXZ , FWXMBM , SRM1 , SRM2 , YBZXDM, YBXZBZ, ZXZT, ZXWYM )
SELECT A.BH, '2', A.MC, D.YBZXDM, A.CLFL, A.YLBZBH,
A.SRM1, A.SRM2, C.YBCLBH, DECODE(C.XY_DJXEBZ, '是','1', '1', '1','0'),
DECODE(C.YBCLBH, NULL, 'A','B'), DECODE(C.YBCLBH, NULL, '', '2')
FROM YLFYB A , YBXX.YB_FYMATCH B, YBXX.YB_CLDIC C, YBXX.YB_DICPP D
WHERE A.CLFL IN ('1','2','3') AND A.FS NOT IN ('1','M','Y','Z','C')
AND D.FLDM = '009'
AND A.BH = B.HOSBH(+)
AND B.HOSBH IS NULL
AND A.YBBM = C.OLDYBBM(+)
AND A.DW = D.HOSMC;
这种问题有时候出现有时候不出现
( HOSBH , LX , ZWMC , JJDW , CDXZ , FWXMBM , SRM1 , SRM2 , YBZXDM, YBXZBZ, ZXZT, ZXWYM )
SELECT A.BH, '2', A.MC, D.YBZXDM, A.CLFL, A.YLBZBH,
A.SRM1, A.SRM2, C.YBCLBH, DECODE(C.XY_DJXEBZ, '是','1', '1', '1','0'),
DECODE(C.YBCLBH, NULL, 'A','B'), DECODE(C.YBCLBH, NULL, '', '2')
FROM
(select * from ylfyb where a.clfl in ('1','2','3') and AND A.FS NOT IN ('1','M','Y','Z','C')) A ,
YBXX.YB_FYMATCH B,
YBXX.YB_CLDIC C,
YBXX.YB_DICPP D
WHERE D.FLDM = '009'
AND A.BH = B.HOSBH(+)
AND B.HOSBH IS NULL
AND A.YBBM = C.OLDYBBM(+)
AND A.DW = D.HOSMC;