在论坛上几次碰到过类似的于FIFO问题,故共享一个有些"恶搞"的算法。
在很多情况下,需要对一些记录,比如出入库记录,收付款记录进行先入先出的匹配。一般来说普通做法是在某个物料出库的时候通过程序来对比实现。但这种设计对业务要求比较严格。比如需要事先制定,退货,红冲的处理方式。在一些简单的系统中可以直接采用查询来实现。下面用个例子来说明。
两个表
入表 tin(id,marno,qty) // id,主键,可视为批号 ; marno , 物料编号; qty数量
出表 tout(id,marno,qty)
记录如下
tin
id |marno|qty
1 | A |10
2 | A |5
3 | B |20
4 | C |7
5 | A |15
6 | A |20
tout
id |marno|qty
1 | A |3
2 | A |2
3 | B |10