22,181
社区成员




select a.物品编号,数量统计=数量统计-isnull(出库数量,0),时间 from
(select 物品编号,数量统计=sum(入库数量),时间=max(入库时间) from 入库表 group by 物品编号)a
left join 出库表 b on a.物品编号=b.物品编号
select
a.物品编号,a.入库数量-isnull(b.出库数量,0) as 数量统计,a.入库时间 as 时间
from
(select 物品编号,入库时间,sum(入库数量) as 入库数量 from 入库表 group by 物品编号,入库时间) a
left join
(select 物品编号,出库时间,sum(出库数量) as 出库数量 from 出库表 group by 物品编号,出库时间) b
on
a.入库时间=b.出库时间 and a.物品编号=b.物品编号
select a.物品编号,数量统计=sum(a.入库数量-isnull(b.出库数量,0)),max(入库时间) 时间 from 入库表 a left join 出库表 b on a.物品编号=b.物品编号 group by a.物品编号
create table 出库表(物品编号 varchar(10), 出库数量 int, 出库时间 datetime)
insert into 出库表 values('A01' , 10, '2009-03-26')
insert into 出库表 values('A02' , 5 , '2009-03-26')
insert into 出库表 values('A01' , 3 , '2009-03-26')
create table 入库表(物品编号 varchar(10), 入库数量 int, 入库时间 datetime)
insert into 入库表 values('A01' , 5 , '2009-03-26')
go
select m.物品编号 ,
m.出库数量 - isnull(n.入库数量,0) 数量统计,
m.出库时间 时间
from
(
select 物品编号 , sum(出库数量) 出库数量 , 出库时间 from 出库表 group by 物品编号 , 出库时间
) m
left join 入库表 n
on m.物品编号 = n.物品编号 and m.出库时间 = n.入库时间
drop table 出库表,入库表
/*
物品编号 数量统计 时间
---------- ----------- ------------------------------------------------------
A01 8 2009-03-26 00:00:00.000
A02 5 2009-03-26 00:00:00.000
(所影响的行数为 2 行)
*/