SELECT 1 FROM DJXX 
        WHERE JYJG.YBH = DJXX.JGH AND DJXX.RJBH = :rjbh AND DJXX.SBH = :sbh 

解决方案 »

  1.   

    distinct 只对一个列 有作用  如果列多就没什么效果了http://www.dezai.cn/article_show.asp?ArticleID=27215
      

  2.   

    第二句明显是错误的逻辑,不用考虑。
    可以参考:
    SELECT DISTINCT JYJG.SBH,  
        JYJG.YBH,  
        JYJG.JYSJ 
    FROM JYJG 
    WHERE ( JYJG.SBH = :sbh ) AND  
        ( JYJG.RJBH = :rjbh ) AND  
        ( JYJG.TSXX <>'质控' ) AND 
        (NOT EXISTS (SELECT 1 FROM DJXX 
        WHERE JYJG.YBH = DJXX.JGH AND DJXX.RJBH = :rjbh AND DJXX.SBH = :sbh ))
    JYJG.TSXX <>'质控'会自动去除为null的数据,不需要用isnull()做处理。
      

  3.   

    not in ,not exists之类的查询,其速度基本上没有什么差别.
      

  4.   

    看看这里的讨论.http://topic.csdn.net/u/20081230/16/ae2287db-8975-4a5e-a91d-bc6ed95799a8.html?860726262http://topic.csdn.net/u/20081229/10/7db881a0-02f6-4949-9c55-581a51c25c6e.html