select Top 10000  count(*)
FROM MOCTA AS MOCTA
WHERE (MOCTA.TA013='Y') and  ( ((MOCTA.TA001 = '5130')
  AND (MOCTA.TA003 >= '20090501')
  AND (MOCTA.TA003 <= '20090531')
  AND (MOCTA.TA011 = 'Y' or MOCTA.TA011 = 'y' )) and  
( select count(*) FROM SFCTA SFCTA 
 where  (MOCTA.TA001=SFCTA.TA001) 
and  (MOCTA.TA002=SFCTA.TA002) and  ( (SFCTA.TA032 = 'N') ) )> 0 ) 
代码中
( select count(*) FROM SFCTA SFCTA 
 where  (MOCTA.TA001=SFCTA.TA001) 
and  (MOCTA.TA002=SFCTA.TA002) and  ( (SFCTA.TA032 = 'N') ) )> 0 )
是什么意思?怎么可以不用join了?是不是什么情况下可以不用join??

解决方案 »

  1.   

    ( select count(*) FROM SFCTA SFCTA 
    where  (MOCTA.TA001=SFCTA.TA001) 
    and  (MOCTA.TA002=SFCTA.TA002) and  ( (SFCTA.TA032 = 'N') ) )> 0 ) 
    看成整体就是一个数字>0的条件
      

  2.   

    那什么select count(*) FROM SFCTA SFCTA 
    where  (MOCTA.TA001=SFCTA.TA001) 
    and  (MOCTA.TA002=SFCTA.TA002) and  ( (SFCTA.TA032 = 'N') ) )> 0中
    可以不用join?直接就MOCTA=SFCTA了??
      

  3.   

    后一个select只是返回了满足条件的记录数是不是大于0而已。并不是联合查询,所以没有用join。