运行下面的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);

解决方案 »

  1.   

    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
    group by MBCF.INTENDDTE,MBCF.IPAYDATE,MBCF.STATUS,MBCF.NOTPRINAMT_8 
    having count(*)>1