select 单号=isnul(a.单号,b.单号),
       进货总量=isnull(a.进货总量,0),
       进货总额=isnull(a.进货总额,0),
       退货总量=isnull(b.退货总量,0),
       退货总额=isnull(b.退货总额,0)
from A full join B on a.单号=b.单号

解决方案 »

  1.   


    select 单号
    ,进货总量=sum(进货总量),进货总额=sum(进货总额)
    ,退货总量=sum(退货总量),退货总额=sum(退货总额)
    from(
    select 单号,进货总量=0,进货总额=0,退货总量,退货总额
    from 表A
    union all
    select 单号,进货总量,进货总额,退货总量=0,退货总额=0
    from 表B
    )a group by 单号
      

  2.   

    --或者:
    select 单号=isnull(a.单号,b.单号)
    ,进货总量=isnull(b.进货总量,0),进货总额=isnull(b.进货总额,0)
    ,退货总量=isnull(a.退货总量,0),退货总额=isnull(a.退货总额,0)
    from 表A a
    full join 表B b on a.单号=b.单号
    order by isnull(a.单号,b.单号)
      

  3.   

    改一下
    select 单号=isnul(a.单号,b.单号),
           进货总量=sum(isnull(a.进货总量,0)),
           进货总额=sum(isnull(a.进货总额,0)),
           退货总量=sum(isnull(b.退货总量,0)),
           退货总额=sum(isnull(b.退货总额,0))
    from A full join B on a.单号=b.单号group by 单号
      

  4.   

    怎么少了一个l   
    select 单号=isnull(a.单号,b.单号),
           进货总量=sum(isnull(a.进货总量,0)),
           进货总额=sum(isnull(a.进货总额,0)),
           退货总量=sum(isnull(b.退货总量,0)),
           退货总额=sum(isnull(b.退货总额,0))
    from A full join B on a.单号=b.单号group by 单号