SELECT A.TA001,A.TA002,A.TA003,B.TA006,B.TA034,B.TA035,A.TA004, C.MW002,B.TA015,
        (B.TA015-B.TA017-CASE WHEN(D.MB001='Y')THEN B.TA018 ELSE 0 END - CASE WHEN(D.MB002='Y')THEN B.TA060 ELSE 0 END) AS TA010C,
        A.TA008,B.TA044 AS TA044
  FROM SFCTA as A
  left join MOCTA as B on A.TA001=B.TA001 AND A.TA002=B.TA002
  left join CMSMW as C on A.TA004=C.MW001
  LEFT JOIN MOCMB AS D ON 1=1
  WHERE
                A.TA001+A.TA002>=SUBSTRING( A.TA001 + '    ',1,4) + A.TA002
                AND   NOT B.TA011 IN ('Y','y') and B.TA013='Y'
                AND B.TA061 IN ('',B.TA061) 
and A.TA001+A.TA002 not in (select TC004+TC005 from  SFCTC  SFCTA left join CMSMQ 
CMSMQ on TC004=MQ001  where MQ003='D1')
and (select TA001 from SFCTA) != B.TA001 AND (SELECT TA002 FROM SFCTA) != B.TA002
select TA001 from SFCTA类型时varchar类型
B.TA001 也是varchar类型
可是还是提示:从数据类型 varchar 转换为 numeric 时出错.

解决方案 »

  1.   

    (select TA001 from SFCTA) != B.TA001 AND (SELECT TA002 FROM SFCTA) != B.TA002没有这种写法 
      

  2.   

    那应该怎么判断select TA001 from SFCTA     不等于   B.TA001
      

  3.   

    (select TA001 from SFCTA where TA001 != B.TA001) AND (select TA002 from SFCTA where TA002 != B.TA002)
      

  4.   

    and (select max(TA001) from SFCTA) != B.TA001