SELECT  
c.ID id,
c.SUBJECT_CD subjectCd,
c.DEBIT_CUST_NO debitCustNo,
c.BILL_CODE billCode,
c.SUMMARY summary,
c.DEBIT_AMT debitAmt,
c.CREDIT_AMT creditAmt,
c.VOUCHER_CODE voucherCode,
c.CREDIT_CUST_NO creditCustNo,
c.CHARGE_DATE chargeDate,
c.IMPORT_TIME importTime,
e.CUST_NAME  debitCustName,
f.CUST_NAME creditCustName,
c.SUBJECT_NAME subjectName
FROM VOA_GIN_INF_DATA c left join VOA_CUST e ON c.DEBIT_CUST_NO = e.CUST_NO 
left join VOA_CUST f ON c.CREDIT_CUST_NO = f.CUST_NO 
WHERE NOT EXISTS (SELECT d.INF_DATA_ID from VOA_GIN_MISS_DATA d WHERE  d.DISPOSE_STATUS='1')和 
SELECT  
c.ID id,
c.CUST_NO custNo,
c.BANK_ACNT bankAcnt,
c.SUBJECT_CD subjectCd,
c.BILL_CODE billCode,
c.SUMMARY summary,
c.DEBIT_AMT debitAmt,
c.CREDIT_AMT creditAmt,
c.VOUCHER_CODE voucherCode,
c.CHARGE_DATE chargeDate,
c.IMPORT_TIME importTime,
c.SUBJECT_NAME subjectName,
e.CUST_NAME  custName
FROM VOA_BANK_INF_DATA c left join VOA_CUST e ON c.CUST_NO = e.CUST_NO  
 left join VOA_CUST_FETCH_INFO d ON d.CUST_NO=c.CUST_NO AND d.CUST_BIZ_TYPE='BANK' 
WHERE NOT EXISTS  (SELECT d.INF_DATA_ID from VOA_BANK_MISS_DATA d WHERE  d.DISPOSE_STATUS = '1')
    用not in 和 not EXISTS  查询出的结果不一致,请各位帮忙看怎么回事?

解决方案 »

  1.   

    你第二个语句中多了一个连接条件:AND d.CUST_BIZ_TYPE='BANK'  可能影响了你结果!
      

  2.   

    首先你的两个sql用的条件不一样,其次not EXISTS 的用法不是你上面的样子的》
      

  3.   

    SQL不一致,也没出现not in
      

  4.   

    犯错误了?下面是
    SELECT  
    c.ID id,
    c.SUBJECT_CD subjectCd,
    c.DEBIT_CUST_NO debitCustNo,
    c.CREDIT_CUST_NO creditCustNo,
    c.BILL_CODE billCode,
    c.SUMMARY summary,
    c.DEBIT_AMT debitAmt,
    c.CREDIT_AMT creditAmt,
    c.VOUCHER_CODE voucherCode,
    c.CHARGE_DATE chargeDate,
    c.IMPORT_TIME importTime,
    e.CUST_NAME  debitCustName,
    f.CUST_NAME creditCustName,
    j.SUBJECT_NAME subjectName
    FROM VOA_GOUT_INF_DATA c left join VOA_CUST e ON c.DEBIT_CUST_NO = e.CUST_NO 
     left join VOA_CUST f ON c.CREDIT_CUST_NO = f.CUST_NO 
     left join VOA_SUBJECT_CODE j on c.SUBJECT_CD = j.SUBJECT_NO 
    WHERE c.ID NOT IN (SELECT d.INF_DATA_ID from VOA_GOUT_MISS_DATA d WHERE  d.DISPOSE_STATUS='1')

     SELECT  
    c.ID id,
    c.SUBJECT_CD subjectCd,
    c.DEBIT_CUST_NO debitCustNo,
    c.CREDIT_CUST_NO creditCustNo,
    c.BILL_CODE billCode,
    c.SUMMARY summary,
    c.DEBIT_AMT debitAmt,
    c.CREDIT_AMT creditAmt,
    c.VOUCHER_CODE voucherCode,
    c.CHARGE_DATE chargeDate,
    c.IMPORT_TIME importTime,
    e.CUST_NAME  debitCustName,
    f.CUST_NAME creditCustName,
    j.SUBJECT_NAME subjectName
    FROM VOA_GOUT_INF_DATA c left join VOA_CUST e ON c.DEBIT_CUST_NO = e.CUST_NO 
     left join VOA_CUST f ON c.CREDIT_CUST_NO = f.CUST_NO 
     left join VOA_SUBJECT_CODE j on c.SUBJECT_CD = j.SUBJECT_NO 
    WHERE NOT exists (SELECT d.INF_DATA_ID from VOA_GOUT_MISS_DATA d WHERE  d.DISPOSE_STATUS='1')结果查询不一致,请高手帮忙?
      

  5.   

    --改成这样
    WHERE NOT exists (SELECT d.INF_DATA_ID from VOA_GOUT_MISS_DATA d WHERE d.DISPOSE_STATUS='1' and c.ID=d.INF_DATA_ID)--少了这个
      

  6.   

    楼上说的是
    你条件都没下够,结果当然不一样
    WHERE NOT exists (SELECT 1 from VOA_GOUT_MISS_DATA d WHERE d.DISPOSE_STATUS='1' and c.ID=d.INF_DATA_ID)