SELECT    ID, qiyedm, mingpailx, niandu, rendingsj, mingpaicpmc, pingpaisb, qiyemc, xianyu, beizhu 
FROM        dbo.Mpcx 
WHERE    (qiyedm NOT IN (SELECT    jgdm  FROM          dbo.Jgdm WHERE      (jgdm IS NOT NULL))) UNION ALLSELECT    ID, qiyedm, mingpailx, niandu, rendingsj, mingpaicpmc, pingpaisb, qiyemc, xianyu, beizhu 
FROM        dbo.Mpcx 
WHERE    (qiyedm IS NULL) 

解决方案 »

  1.   

    WHERE (qiyedm NOT IN (SELECT distinct jgdm  FROM dbo.Jgdm))) OR (qiyedm IS NULL) 加上distinct,使list减小,另外,不用去考虑Jgdm.jgdm是否为NULL的问题,因为是NULL本来就满足条件.
      

  2.   

    WHERE (qiyedm NOT IN (SELECT distinct jgdm  FROM dbo.Jgdm)) OR (qiyedm IS NULL) 上面多了一个括号.
      

  3.   

    如果一定要加上jgdm的判断,那直接where就行了.
    WHERE (qiyedm NOT IN (SELECT distinct jgdm  FROM dbo.Jgdm where jgdm is not null)) OR (qiyedm IS NULL) 
      

  4.   

    SET              ansi_nulls OFF
                              SELECT     ID, qiyedm, mingpailx, niandu, rendingsj, mingpaicpmc, pingpaisb, qiyemc, xianyu, beizhu
                               FROM         dbo.Mpcx
                               WHERE     (qiyedm NOT IN
                                                          (SELECT     jgdm
                                                            FROM          dbo.Jgdm
                                                            WHERE      (jgdm IS NOT NULL)))SELECT     ID, qiyedm, mingpailx, niandu, rendingsj, mingpaicpmc, pingpaisb, qiyemc, xianyu, beizhu
    FROM         dbo.Mpcx AS a
    WHERE     (NOT EXISTS
                              (SELECT     jgdm
                                FROM          dbo.Jgdm AS b
                                WHERE      (a.qiyedm = jgdm)))
      

  5.   

    SET              ansi_nulls OFF
                              SELECT     ID, qiyedm, mingpailx, niandu, rendingsj, mingpaicpmc, pingpaisb, qiyemc, xianyu, beizhu
                               FROM         dbo.Mpcx
                               WHERE     (qiyedm NOT IN
                                                          (SELECT     jgdm
                                                            FROM          dbo.Jgdm
                                                            WHERE      (jgdm IS NOT NULL)))SELECT     ID, qiyedm, mingpailx, niandu, rendingsj, mingpaicpmc, pingpaisb, qiyemc, xianyu, beizhu
    FROM         dbo.Mpcx AS a
    WHERE     (NOT EXISTS
                              (SELECT     jgdm
                                FROM          dbo.Jgdm AS b
                                WHERE      (a.qiyedm = jgdm)))
      

  6.   

    SELECT ID, qiyedm, mingpailx, niandu, rendingsj, mingpaicpmc, pingpaisb, qiyemc, xianyu, beizhu 
    FROM dbo.Mpcx 
    WHERE qiyedm IS NULLUNION ALLSELECT ID, qiyedm, mingpailx, niandu, rendingsj, mingpaicpmc, pingpaisb, qiyemc, xianyu, beizhu 
    FROM dbo.Mpcx 
    WHERE NOT EXISTS (SELECT 1 FROM dbo.Jgdm WHERE Mpcx.qiyedm = Jgdm.jgdm)