我有两个表:入库表和出库表,我想查询两个表中某物品编号的最新库存,怎么实现?
解决方案 »
- 请教一个cxGrid中LookupComboBox的问题
- 求达人解购买正版Delphi软件的疑惑
- 如何使一個窗體總在所有的應用程式的最前面.
- 加急,小妹求助电子白板程序一个,望高手大虾帮忙!!!
- 怎样使用delphi7中的Indv的IdUDPClient和IdUDPServer控件,在线等
- 请问怎么连接excel的workbook.
- delphi调用存储过程的错误
- 如何不停的向RS232串口发送,这一串数据,是不停的循环的发,高手进来看一下
- ==怎么得到某一库中所有用户表的名称??====
- 大家最初找工作时是什么境遇?(答者给分,反正分数用不完,分数可以超过67)
- sql server并发访问的问题
- 我的网站开通,散分
当然我用WHILE语句可以实现,可是我不想用,查询太慢了.
(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时会删除重复记录
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.货品可以仿照上面的得到你想要得“进销存变化表”