select 物品名,进货日期,库存数量
from
(select 物品名,进货日期,入库数量 as 库存数量 from 表一
union all
select 物品名,出库日期 as 进货日期,出库数量 as 库存数量 from 表二
)
order by 物品名,进货日期
compute SUM(库存数量) by 物品名
from
(select 物品名,进货日期,入库数量 as 库存数量 from 表一
union all
select 物品名,出库日期 as 进货日期,出库数量 as 库存数量 from 表二
)
order by 物品名,进货日期
compute SUM(库存数量) by 物品名
select 物品名,进货日期,库存数量
from
(select a.物品名,a.进货日期,a.入库数量-b.出库数量 as 库存数量 from 表一 a left outer join (select 物品名,进货日期,出库数量 from 表二 group by 物品名,进货日期) b on a.物品名=b.物品名 and a.进货日期=b.进货日期)
)
order by 物品名,进货日期
compute SUM(库存数量) by 物品名
=====================================================
:-)
=====================================================
select 物品名,进货日期,库存数量
from
(select a.物品名,a.进货日期,a.入库数量-b.出库数量 as 库存数量 from 表一 a left outer join (select 物品名,进货日期,sum(出库数量) as 出库数量 from 表二 group by 物品名,进货日期) b on a.物品名=b.物品名 and a.进货日期=b.进货日期)
)
order by 物品名,进货日期
compute SUM(库存数量) by 物品名
=====================================================
:-)
from
(select a.物品名,a.进货日期,a.入库数量-isnull(b.出库数量,0) as 库存数量 from 表一 a left outer join (select 物品名,进货日期,sum(出库数量) as 出库数量 from 表二 group by 物品名,进货日期) b on a.物品名=b.物品名 and a.进货日期=b.进货日期)
)
order by 物品名,进货日期
compute SUM(库存数量) by 物品名
(select 物品名,进货日期,sum(入库数量) from A group by 物品名,进货日期)) AA
left outer join
(select 物品名,sum(出库数量),进货日期 from B group by 物品名,进货日期)
on aa.物品名=bb.物品名 and aa.进货日期=bb.进货日期汇总可以在前台统计,比较方便。
====================================================================
select 物品名,进货日期,库存数量
from
(select a.物品名,a.进货日期,a.入库数量-isnull(b.出库数量,0) as 库存数量 from 表一 a left outer join (select 物品名,进货日期,sum(出库数量) as 出库数量 from 表二 group by 物品名,进货日期) b on a.物品名=b.物品名 and a.进货日期=b.进货日期
)
order by 物品名,进货日期
compute SUM(库存数量) by 物品名
===================================================================
PS:加isnull是对的,这样逻辑上会比较完整些,有些地方是不是需要group by要看看你的数据结构如何定义的,象楼上CrazyFor(Fan)写的也对,但是如果表一的PK是物品名+进货日期就没必要用group by了,那样这只会加重Server的负担,如果不是,加group by是必要的.