前些天看到一个问题,说是要 Oracle 实现这样的报表
粗略看上去,有点像是要 根据仓库的 “入库 / 出库” 的日志信息, 产生 库存的应收费用的报表。
头一天处理了一下,发现 存在先进先出 还是 后进先出的问题, 这个 SQL 语句里面,实在难处理。
也就是
例如有 B 客户
1号 入库 100
5号 出库 50
6号 入库 50
7号 出库 20
8号 出库 40
7号出库的20 , 出哪一天入库的呢?
因为7号出库的20, 出哪一天的,会影响到后面的 8号出库40的计算。
然后 提问的朋友说
每个出库单对应一个入库单,有入库编号关联着的!
1号 入库 100 编号:RK01
5号 出库 50 编号:RK01
6号 入库 50 编号:RK02
7号 出库 20 编号:RK01
8号 出库 40 编号:RK02
那么这样的话,用 Oracle SQL 语句, 是完全可以处理的了。
最后的 SQL 语句有点长。
涉及到了好几个知识点, 也不是什么最佳的算法。
看看就好了。
下面一个步骤一个步骤进行解释