select a.id,sum(a.sl*b.jg) from a left join  b on a.id=b.a_id
group by a.id右表b会有重复记录,怎么去掉重复的记录?

解决方案 »

  1.   

    select a.id,sum(a.sl*T.jg) from a left join (select distinct * from b )T on a.id=T.a_id
    group by a.id
      

  2.   

    select a.id,sum(a.sl*b.jg) 
    from a 
    left join (select distinct * from b)b on a.id=b.a_id
    group by a.id
      

  3.   

    select a.id,a.sl*b.jg
    from (select id,sum(sl) sl from a group by id) a 
      left join (select a_id,sum(jg) jg from b group by a_id) b 
        on a.id=b.a_id
      

  4.   

    select a.id,a.sl*b.jg
    from a 
      left join (select a_id,sum(jg) jg from b group by a_id) b 
        on a.id=b.a_id如果只有是B表有重复,只需这样。
      

  5.   


    select 
      a.id,
      sum(a.sl * c.jg)
    from a 
    left join (select distinct a_id,jq from b) c
    on a.id = c.a_id
    group by a.id
      

  6.   

    表xf
    id  product_h    sl 
    1        P001      1
    2         P002     2
    3         P001      3表jg
    id      product_h    sl
    1           P001         10
    2           P001          20
    3           P002          30select a.product_h,a.sl 
    from xf a
    left join jg b on a.product_h=b.product_h
    结果是
    product_h sl
    P001 1.00
    P001 1.00
    P002 2.00
    P001 3.00
    P001 3.00我想要只显示表xf的记录,不管有没有重复
    不要表jg的重复记录
    P001 1.00
    P001 1.00
    P002 2.00