用负数表示退货
select//选取发货记录
O.POSTDATE as Date,//发货日期
d.Areaname ParentAreaName,//区域名
a.AreaName ,//地区名称
O.FullName,//客户名称
O.BillCode OBillCode,//发货单号
sum(OB.Quantity) OutQuantity,//发货量
sum(OB.Quantity*OB.UnitCost)ToalMoney发货金额
 from
.......
where 
.......
group by 
.......
union all
select//选取退货记录
E.ReturnDate,//退货日期
d.Areaname ParentAreaName,//区域名称
a.AreaName,//地区名称
E.FullName,//客户名称
E.AcceptBillCode,//退货单号
--R.ReturnCauseName,//退回原因
-sum(EB.Quantity) TotalReturnQuantity,//退货量
-sum(EB.Quantity*EB.UnitCost) TotalReturnMoney//退货金额
 from
......where 
......group by 
 ....

解决方案 »

  1.   


    我觉得实现你要的效果应该可以用联结来做Select * from   --这里加上Select * from
    (select//选取发货记录
    O.POSTDATE  As date,//发货日期
    O.FullName,//客户名称
    O.BillCode OBillCode,//发货单号
    a.AreaName ,//地区名称
    d.Areaname ParentAreaName,//区域名
    sum(OB.Quantity) OutQuantity,//发货量
    sum(OB.Quantity*OB.UnitCost)ToalMoney发货金额
     from
    .......
    where 
    .......
    group by 
    .......) A   --这里加上别名
    Inner Join   --这里加上Inner Join
    (select//选取退货记录
    E.ReturnDate As date,//退货日期
    E.FullName,//客户名称
    E.AcceptBillCode,//退货单号
    a.AreaName,//地区名称
    d.Areaname ParentAreaName,//区域名称
    R.ReturnCauseName,//退回原因
    sum(EB.Quantity) TotalReturnQuantity,//退货量
    sum(EB.Quantity*EB.UnitCost) TotalReturnMoney//退货金额
     from
    ......where 
    ......group by 
     ....
    )B           --这里加上别名
    On 条件      --这里加上条件
      

  2.   


    要用union all
    就是前后兩個字段都要一樣。可以用自然連接了