[code=SQL][
if object_id('Receipt')is not null drop table Receipt
if object_id('delivery')is not null drop table delivery
if object_id('stocktake')is not null drop table stocktakecreate table Receipt
(
id int,
itemcode varchar(100),
qty int,
date varchar(8))
insert into Receipt
select 1,'001',100,'20080601'
union all
select 2,'002',100,'20080601'create table delivery
(
id int,
itemcode varchar(100),
qty int,
date varchar(8))
insert into delivery
select 1,'001',100,'20080602'create table stocktake
(
id int,
itemcode varchar(100),
qty int,
date varchar(8))insert into stocktake
select 2,'002',80,'20080602'select * from 
(
select '入库'+itemcode as itemdes,itemcode ,qty,date 
from Receipt
union all
select '出库'+itemcode as itemdes,itemcode,-qty,date 
from delivery
union all
(
select '盘点'+T1.itemcode as itemdes,T0.itemcode,sum(T1.qty)-sum(T0.qty),T1.date from 
(
select itemcode,qty,date from Receipt
union all
select itemcode,-qty,date from delivery
) T0
right join stocktake T1 on T0.itemcode = T1.itemcode and T0.date<=T1.date
group by T0.itemcode,T1.itemcode,T1.date)
) T2 
/code]