日期:2014-05-19  浏览次数:20586 次

大家看看这个sql该怎么写?

--表结构

create   table   test   --出入库表
(
id   int   identity(1,1),   --主键
货物类别     varchar(20),
货物名称     varchar(20),
货物规格     varchar(20),
货物价格     money,
出入库日期   datetime,
数量     int,
入库单编号   varchar(20),
出库单编号   varchar(20),
退库单编号   varchar(20),
出入库状态   char(1),--1代表货物入库,0代表货物出库,2代表出库退货
领用部门   varchar(20),
领用人   varchar(20)
)
--以下是入库数据
insert   into   test   select   'a类 ', 'a1 ', '1*2 ',1000, '2007-1-1 ',10, 'rk-1 ',null,null, '1 ',null,null
insert   into   test   select   'a类 ', 'a1 ', '1*2 ',1500, '2007-1-1 ',15, 'rk-2 ',null,null, '1 ',null,null
insert   into   test   select   'a类 ', 'a2 ', '1*3 ',2000, '2007-1-1 ',20, 'rk-3 ',null,null, '1 ',null,null

--以下是出库数据

insert   into   test   select   'a类 ', 'a1 ', '1*2 ',1000, '2007-1-1 ',5,null, 'ck-1 ',null, '0 ', '部门1 ', '张三 '
insert   into   test   select   'a类 ', 'a1 ', '1*2 ',1500, '2007-1-1 ',10,null, 'ck-2 ',null, '0 ', '部门1 ', '张三 '
insert   into   test   select   'a类 ', 'a2 ', '1*3 ',2000, '2007-1-1 ',10,null, 'ck-3 ',null, '0 ', '部门1 ', '张三 '

--以下是出库退货数据


insert   into   test   select   'a类 ', 'a1 ', '1*2 ',1000, '2007-1-1 ',1,null,null, 'tk-1 ', '2 ', '部门1 ', '张三 '
insert   into   test   select   'a类 ', 'a1 ', '1*2 ',1500, '2007-1-1 ',2,null,null, 'tk-2 ', '2 ', '部门1 ', '张三 '
insert   into   test   select   'a类 ', 'a2 ', '1*3 ',2000, '2007-1-1 ',3,null,null, 'tk-3 ', '2 ', '部门1 ', '张三 '


select   *   from   test


drop   table   test
/*

报表:货物出入库明细

货物类别     货物名称     货物规格       货物价格       入库单据号     入库数量     入库金额       出库单据号     出库数量     出库金额     退库单据号     退库数量     退库金额     领用部门     领用人       日期           结余数量     结余金额      
a类     a1               1*2               1000               rk-1               10                 10000             null               0                   0                 null                 0                     0           null           null         2007-1-1     10               1