(exists (select ITEM_GROUP from QTGL_B_YWY_CODETYPE where YWY = '607078' and RULE = 'CK') 单单看这句~ 
select ITEM_GROUP from QTGL_B_YWY_CODETYPE where YWY = '607078' and RULE = 'CK'
你查一下,是不是有这条记录? 
有的话,这个exists当然永远成立

解决方案 »

  1.   

    (exists (select ITEM_GROUP from QTGL_B_YWY_CODETYPE where YWY = '607078' and RULE = 'CK')是永远成立的的,但实际上YWY的值是变量传入的,会变化,则有些值就不会使满足条件的结果exists。
    我的意思是说即使没有这样的结果exists,它仍然会把之后的
    and 
           (select ITEM_GROUP from JCSJ_B_ITEM where ITEM_CODE_TYPE = CHGL_B_OUT.SM_TYPE and ITEM_CODE = CHGL_B_OUT.SM_CODE) IN (select ITEM_GROUP from QTGL_B_YWY_CODETYPE where YWY = '607078' and RULE = 'CK')
    接到主查询中。