我有两个表:入库表和出库表,我想查询两个表中某物品编号的最新库存,怎么实现?

解决方案 »

  1.   

    我在月报表每月都要知道上月结存数量,而我只计算到这一步,如果这个问题能解决就可以知道上月结存数量了
    当然我用WHILE语句可以实现,可是我不想用,查询太慢了.
      

  2.   

    select temptb2.物品编号,temptb2.最后日期,temptb3.数量 from 
      (select 物品编号,max(日期) as 最后日期 from 
        (select id,物品编号,入库日期 as 日期,数量 from 入库表
        union
        select id,物品编号,出库日期 as 日期,数量 from 出库表) temptb1
      group by 物品编号)temptb2 inner join
        (select id,物品编号,入库日期 as 日期,数量 from 入库表
        union
        select id,物品编号,出库日期 as 日期,数量 from 出库表) temptb3
    on temptb2.物品编号=temptb3.物品编号 and temptb2.最后日期=temptb3.日期注意其中的id为主键,不可省略,如果省略,union时会删除重复记录
      

  3.   

    执行的SQL语句:
    select 入库数量,出库数量 ,库存数量 from 商品信息表 A
    left join 
    (select sum(数量) 入库数量,货品,日期 from 入库表 where 日期=? GROUP BY 货品,日期) B ON B.货品=A.货品
    LEFT JOIN 
    inner JOIN 
      (select sum(数量) 库存数量,货品,日期 from 库存表 where 日期=?  GROUP BY 货品,日期) C ON C.货品=A.货品可以仿照上面的得到你想要得“进销存变化表”