解决方案 »

  1.   

    你这么写,  条件    AND PROD_CODE = 'J2' 中的PROD_CODE指的是A表的PROD_CODE,而不是你 select 子句拼接的(select prod_code from TSOSC01 where a.psc = psc) PROD_CODE,A表中PROD_CODE 为空值,自然没有满足条件的记录,什么也查不到
      

  2.   


    -- 试试这个,肯定也查不出东西来,因为你的表里就没有符合这两个条件的记录;select count(*)
    FROM TPMOP21 a 
           where a.PSC = 'TF10242'      
           AND PROD_CODE = 'J2'
      

  3.   

    你这么写,  条件    AND PROD_CODE = 'J2' 中的PROD_CODE指的是A表的PROD_CODE,而不是你 select 子句拼接的(select prod_code from TSOSC01 where a.psc = psc) PROD_CODE,A表中PROD_CODE 为空值,自然没有满足条件的记录,什么也查不到请问如果我只保留AND PROD_CODE = 'J2'就能正确显示,是为什么?是否应该将这个查询条件写到字句里?
      

  4.   

    a表:有PROD_CODE字段,但是为空值,而不是为J2,那不就是查不出来吗
      

  5.   

    楼主,你说a表PROD_CODE字段为空,你在wherre 条件里还加上prod_code(你的prod_code取得是a表的),怎么可能查出数据来,每太明白你的意思
      

  6.   

    改成这样如何
       SELECT a.psc,
           (select prod_code from TSOSC01 where a.psc = psc AND PROD_CODE = 'J2') PROD_CODE
           FROM TPMOP21 a 
           where a.PSC = 'TF10242'      
           
    因为a表这个字段的值为NULL,而TSOSC01表这个字段是用值的,如果查询TSOSC01表的PROD_CODE = 'J2',如果满足条件,就会有结果了。
      

  7.   

    露珠不要乱啊,慢慢分析句子啊。后面的prod_code是temop21的字段,也就是a的字段。露珠不是说a的那个字段为空值吗?所以prod_code='TF10242'酱紫肯定查不到的了。