用负数表示退货
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
....
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
....
我觉得实现你要的效果应该可以用联结来做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 条件 --这里加上条件
要用union all
就是前后兩個字段都要一樣。可以用自然連接了