在sql语句中,如果只有对应的出入仓主明细表,怎么让查询出来的结果的结存数随着数据变化。
比如我设置时间范围1-1,1-31,然后得出这个日期之前的结存数,接着问题在于,在这个月范围内的每天的结存数动态变化。想问一下有什么比较好的方法吗?
后来我用AR报表的后台代码来实现数据的动态变化
假设数据表如下:
OperDate | Buy | Sell |
select CONVERT(varchar(11),OrderDate,120) as OrderDate,(select sum(Buy)-SUM(Sell) from Orders where OperDate<'2017-1-1')+ sum(Buy)-SUM(Sell) as GoodsNumber from Orders where OperDate>'2017-1-1' and OperDate<'2017-1-31' group by CONVERT(varchar(11),OrderDate,120)
说明:select sum(Buy)-SUM(Sell) from Orders where OperDate<'2017-1-1'
是计算1-1以前的存货数量。
不对 按你的查询语句出来的结果不正确,
但我找到其他方法解决了 也谢谢你的回答
就是有时间点的库存数?
就是说比如我要筛选的区间是1-1到1-31,然后这时候的某一货物的初始结存数应该是1-1之前进出的差值,接着假设每一天都有数据,则1-1结存数结果应该是应该等于1-1的进出数+1-1之前的差值,然后1-2的结存数=1-1的结存数+1-2的进出差值,以此类推这样
1 有最新的仓存数和进出仓交易记录, 根据FIFO计算即可计算出任何时间点的库存.
2 没有仓存记录, 只有交易记录, 那么, 只能拿所有截至时间前的进仓交易记录总数 减去 至时间前的出仓交易记录总数