select x.*,y.d,y.e,y.f from x left join y on x.工程号=y.工程号 and x.卷册号=y.卷册号

解决方案 »

  1.   

    select x.*,IsNull(y.d,'') as d,IsNull(y.e,'') as e,IsNull(y.f,'') as f from x left join y on x.工程号=y.工程号 and x.卷册号=y.卷册号
      

  2.   

    不是这么简单的
    select jc.工程号,gc.工程名,gjd.ddm as 阶段,jc.卷册号,jc.卷册名,jc.sjwcrq as 完成日期,jc.折标,gjd.dm from jc 
      inner join gc on rtrim(jc.工程号)=rtrim(gc.工程号) 
      INNER JOIN gjd ON jc.工程号 LIKE '%' + gjd.GJDF + '%'
      where jc.sjwcrq>'1940-01-01' and jc.bmbh='1400' order by 阶段,jc.工程号,jc.sjwcrq
      
      select 工程号,卷册号,sum(fatal) as 原则性错误,sum(tech) as 技术性错误,sum(general) as 一般性错误,sum(cwsl) as 错误合计 from jcfalse where bmbh='1400' group by 工程号,卷册号 order by 工程号,卷册号按照上面的意思这两个SQL怎么把他合在一起啊
      

  3.   

    也就是说y表中d,e,f是求和得之,而且有可能y表中的工程号,卷册号重复,所以得group by
      

  4.   


    select * from (
    select jc.工程号,gc.工程名,gjd.ddm as 阶段,jc.卷册号,jc.卷册名,jc.sjwcrq as 完成日期,jc.折标,gjd.dm
     from jc 
      inner join gc on rtrim(jc.工程号)=rtrim(gc.工程号) 
      INNER JOIN gjd ON jc.工程号 LIKE '%' + gjd.GJDF + '%'
      where jc.sjwcrq>'1940-01-01' and jc.bmbh='1400' order by 阶段,jc.工程号,jc.sjwcrq
      ) left join (  select 工程号,卷册号,sum(fatal) as 原则性错误,sum(tech) as 技术性错误,sum(general) as 一般性错误,
    sum(cwsl) as 错误合计 from jcfalse where bmbh='1400' group by 工程号,卷册号 order by 工程号,卷册号
    ) b on a.工程号=b.工程号 and a.卷册号=b.卷册号??
      

  5.   

    select * from (
    select jc.工程号,gc.工程名,gjd.ddm as 阶段,jc.卷册号,jc.卷册名,jc.sjwcrq as 完成日期,jc.折标,gjd.dm
     from jc 
      inner join gc on rtrim(jc.工程号)=rtrim(gc.工程号) 
      INNER JOIN gjd ON jc.工程号 LIKE '%' + gjd.GJDF + '%'
      where jc.sjwcrq>'1940-01-01' and jc.bmbh='1400'
      ) a left join (  select 工程号,卷册号,sum(fatal) as 原则性错误,sum(tech) as 技术性错误,sum(general) as 一般性错误,
    sum(cwsl) as 错误合计 from jcfalse where bmbh='1400' group by 工程号,卷册号 
    ) b on a.工程号=b.工程号 and a.卷册号=b.卷册号 order by a.工程号,a.卷册号