- select b.*,入库+0 as 货位数量,出库,入库-出库 as 库存 from
- (select min(日期) as t,零部件名称,型号,批次号 from [入库$] where 待处理标记 is null group by 零部件名称,型号,批次号)a,
- (select 日期,零部件名称,部件简称,型号,供应商,厂商代码,批次号,货位号,待处理标记,sum(货位数量) as 入库 from [入库$] where 待处理标记 is null group by 日期,零部件名称,部件简称,型号,供应商,厂商代码,批次号,货位号,待处理标记)b,
- (select 零部件名称,型号,批次号,货位号,sum(货位数量) as 出库 from [出库$] where 待处理标记 is null group by 零部件名称,型号,批次号,货位号)c,
- [查询$A:B]d
- where a.零部件名称&a.型号&a.批次号&a.t=b.零部件名称&b.型号&b.批次号&b.日期 and b.零部件名称&b.型号&a.批次号&b.货位号=b.零部件名称&b.型号&c.批次号&c.货位号 and a.零部件名称&a.型号=d.零部件名称&d.型号
- (注:a,b,c,d为表别名.a:获得入库最早时间,b:获得入库信息,c:获得出库信息,d:获得条件信息.根据where条件组合在一起,按零部件名称,按型号,批次号和货位号分类选出符合条件表(d)的入库信息(b)和出库信息(c),根据出入库信息,求出库存信息.
复制代码
理解了这四个表,我们就可以进行简化SQL语句.
(这个SQL是建立在入库最早日期由零部件名称,型号,批次号确定,出库由零部件名称,型号,批次号,货位号确定的基础上.假如意思与楼主不符合,可以按照这个语句来修改.
[ 本帖最后由 wuxiang_123 于 2010-10-15 09:31 编辑 ] |