select  F.Plan_Id,F.Plan_No,A.cf_id,A.Line_id,A.Ps_sn,A.To_Sn,A.Ps_Id,A.Mk_Id,B.Ps_Name
,C.Cf_No,C.Cf_Name, D.Sp_Id,D.Spcf_Id,D.ifDefault
,E.Sp_No,E.Sp_Name,E.Sp_Short,E.Sp_Spec 
from bmCFB as A 
INNER join bmPs as B on A.Ps_Id=B.Ps_Id 
INNER join bmCFA as C on A.cf_id=C.cf_id 
INNER join bmSPCFA as D on D.Cf_Id=A.Cf_Id 
INNER join erpSp as E on E.Sp_Id=D.Sp_id 
INNER join mpsPlan as F on F.Sp_Id=D.Sp_Id 
INNER JOIN mpsJob g ON g.Plan_ID=a.Ps_sn
where A.Cf_id=11577 and D.ifDefault=1 and D.Sp_Id=11525  
and F.Plan_Date='2014-8-14 00:00:00' OR g.Plan_ID = 45784

解决方案 »

  1.   


    “g.Plan_ID=a.Ps_sn”这里错了吧,这个方法我试过了,查出来的数据会重复!
      

  2.   


    --可以用DISTINCT去重
    select DISTINCT F.Plan_Id --剩余字段楼主自己补齐吧
    from bmCFB as A left join bmPs as B on A.Ps_Id=B.Ps_Id left join bmCFA as C 
    on A.cf_id=C.cf_id left join bmSPCFA as D on D.Cf_Id=A.Cf_Id left join erpSp as E on E.Sp_Id=D.Sp_id 
    left join mpsPlan as F on F.Sp_Id=D.Sp_Id 
    where A.Cf_id=11577 and D.ifDefault=1 and D.Sp_Id=11525  
    and F.Plan_Date='2014-8-14 00:00:00'
    UNION ALL --可以用union all连接起来,但是select 的字段数目及别名须一样才行SELECT  DISTINCT   Plan_ID
    FROM         mpsJob
    WHERE     (Plan_ID = 45784)
      

  3.   


    字段数目都不一样的,用不了UNION ALL ,DISTINCT也不行,查出来是同一条记录重复很多次的!
      

  4.   

    select  F.Plan_Id,F.Plan_No,G.Job_id,G.Plan_Quan ,G.Fs_Quan,A.cf_id,A.Line_id,A.Ps_sn,A.To_Sn,A.Ps_Id,A.Mk_Id,B.Ps_Name
    ,C.Cf_No,C.Cf_Name, D.Sp_Id,D.Spcf_Id,D.ifDefault
    ,E.Sp_No,E.Sp_Name,E.Sp_Short,E.Sp_Spec 
    from bmCFB as A 
    INNER join bmPs as B on A.Ps_Id=B.Ps_Id 
    INNER join bmCFA as C on A.cf_id=C.cf_id 
    INNER join bmSPCFA as D on D.Cf_Id=A.Cf_Id 
    INNER join erpSp as E on E.Sp_Id=D.Sp_id 
    INNER join mpsPlan as F on F.Sp_Id=D.Sp_Id 
    INNER JOIN mpsJob G ON G.Plan_Id=F.Plan_Id and G.Ps_Sn=A.Ps_Sn
    where A.Cf_id=11577 and D.ifDefault=1 and D.Sp_Id=11525  
    and F.Plan_Date='2014-8-14 00:00:00' 谢谢各位,已解决!