SQL怎么用递归实现3表查寻
有个一难题:
算库存的问题,
已知上月末的商品库存,这个月每天的入库和出库,求每天的库存(上月末库存+当天入库-当天出库)
第二天的库存,是前一天得库存加上今天的入库,减今天的出库
月末库存表(商品名称,库存数量) 入库表(日期《1-30号的》,商品名称,库存数量) 出库表(日期《1-30号的》,商品名称,库存数量)
帮忙想想思路~~
[解决办法]
三个表 union all
sum(库存数量) 不对吗 ? 为啥要递归啊
[解决办法]
上一贴,我想了半天的劳动成果
还没得到的答复呢。。。。
[解决办法]
大哥,别这么抠嘛
[解决办法]
这个不叫递归。也有点类似递归吧。叫连接查询而已。
[解决办法]
阿汤哥,上一贴结了哦,麻烦看看这一贴吧? 要求是:第二天的库存,是前一天得库存加上今天的入库,减今天的出库哦
[解决办法]
怎么没人搭理我了?自己帮顶~~
[解决办法]
呵呵 开个玩笑了
你弄点测试数据 我看看,大家也都好帮你。
[解决办法]
有几种方法,首先你按日期得到一个每天库存的进出视图 结果如下
日期 期初 进 出
1.1号 100 0 0
2.1号 2 3
3.1号 4 5
然后 select 进,出,(select sum(期初)+sum(进)-sum(出) from view b where b.日期<=a.日期)
from view a
此方法简单,缺点是速度慢点
[解决办法]
有个快捷的方法:
整个日期辅助表(日期) ,就是你需要求哪些天的库存,比如求2012-10-1,2012-10-2,2012-10-3 就放三条数据
select b.日期,goodsid,sum(数量)
from (select goodsid,数量,日期 from 月末库存表
union all select goodsid,数量,日期 from 入库表
union all select goodsid,数量,日期 from 出库表
) as a , 日期辅助表 as b
where a.日期<=b.日期
group by b.日期,goodsid
[解决办法]
月末库存表
-------------
商品名称 商品数量
a 10
b 5
c 6
入库表
----------------
商品名称 商品数量 商品日期
a 10 20120102
b 4 20120103
c 30 20120104
d 7 20120102
出库表
---------------
商品名称 商品数量 商品日期
a 7 20120103
b 5 20120103
c 30 20120104
d 5 20120102
算每天,每个商品的库存。
[解决办法]
怎么没有人啦??