运行下面的update,得到ORA-01427: single-row subquery returns more than one row
如何查出,哪些数据导致返回多条?UPDATE BMBS_DIHR_TEMP
SET
(ADJINTENDDATE, ADJPAYDATE, STATUS, PRINAMT_8) =
(SELECT MBCF.INTENDDTE,MBCF.IPAYDATE,MBCF.STATUS,MBCF.NOTPRINAMT_8
FROM MBCF
WHERE
BMBS_DIHR_TEMP.BR = '01' AND
BMBS_DIHR_TEMP.SECID = MBCF.SECID AND
BMBS_DIHR_TEMP.SETTDATE >= MBCF.INTSTRTDTE AND
BMBS_DIHR_TEMP.SETTDATE < MBCF.INTENDDTE)
WHERE BMBS_DIHR_TEMP.BR = '01' AND
EXISTS (SELECT '1'
FROM MBCF
WHERE BMBS_DIHR_TEMP.SECID = MBCF.SECID AND
BMBS_DIHR_TEMP.SETTDATE >= MBCF.INTSTRTDTE AND
BMBS_DIHR_TEMP.SETTDATE < MBCF.INTENDDTE);
如何查出,哪些数据导致返回多条?UPDATE BMBS_DIHR_TEMP
SET
(ADJINTENDDATE, ADJPAYDATE, STATUS, PRINAMT_8) =
(SELECT MBCF.INTENDDTE,MBCF.IPAYDATE,MBCF.STATUS,MBCF.NOTPRINAMT_8
FROM MBCF
WHERE
BMBS_DIHR_TEMP.BR = '01' AND
BMBS_DIHR_TEMP.SECID = MBCF.SECID AND
BMBS_DIHR_TEMP.SETTDATE >= MBCF.INTSTRTDTE AND
BMBS_DIHR_TEMP.SETTDATE < MBCF.INTENDDTE)
WHERE BMBS_DIHR_TEMP.BR = '01' AND
EXISTS (SELECT '1'
FROM MBCF
WHERE BMBS_DIHR_TEMP.SECID = MBCF.SECID AND
BMBS_DIHR_TEMP.SETTDATE >= MBCF.INTSTRTDTE AND
BMBS_DIHR_TEMP.SETTDATE < MBCF.INTENDDTE);
FROM MBCF
WHERE
BMBS_DIHR_TEMP.BR = '01' AND
BMBS_DIHR_TEMP.SECID = MBCF.SECID AND
BMBS_DIHR_TEMP.SETTDATE >= MBCF.INTSTRTDTE AND
BMBS_DIHR_TEMP.SETTDATE < MBCF.INTENDDTE
group by MBCF.INTENDDTE,MBCF.IPAYDATE,MBCF.STATUS,MBCF.NOTPRINAMT_8
having count(*)>1