注册 登录
编程论坛 SQL Server论坛

出入库分摊算法

jjyyhen 发布于 2020-11-27 11:05, 1302 次点击
大神能帮我解答下么?

现有出入库明细,按先进先出的原理,将入库按出库时间分摊,一直到分摊完。各种情况都会产生,如 出库>=入库,当天入库全部分摊到出库,剩余的出库由下一个入库分摊。 当出库<入库,入库按出库的日期排序,依次分摊,直到之前的出库分摊完。 有同一天的出库和入库,入库不补当天的,只补之前日期的出库。 需要在原始表上自动增加分摊数据,并且更改起始日期为“补足”。 出入库任何时间都可能有,不一定按我例子的日期, 表里数据会有几万条,希望处理速度快。

数据库: sql2000
字段:日期Datea, 出入库A1(正数是出库,负数是入库),结余量A2,起始日期Dbegin

举例:  原始表
Datea    A1    A2   Dbegin                                               
1-1       100   100   1-1            
1-2       -100   0      1-2
1-3        100   100   1-3
1-4        60     40     1-4
1-5        100    140   1-5
1-8        10      150   1-8
1-8      -160    -10   1-8
1-10      10      0      1-10
1-12      10      10     1-12
1-13      20      30     1-13
1-15      -30     0       1-15
1-15      10      10      1-15
1-17      10      0        1-17

分摊数据插入后的表

Datea    A1    A2   Dbegin
1-1       100   100   1-1
1-2       -100   0    1-2
1-1              100   补足
1-3        100   100   1-3
1-4        60     40   1-4
1-3               60   补足
1-5        100    140   1-5
1-8        10     150   1-8
1-8      -160    -10   1-8
1-5              100   补足
1-3              40    补足
1-10      10      0      1-10
1-12      10      10     1-12
1-13      20      30     1-13
1-12              10      补足
1-10              10      补足
1-8               10      补足
1-15      -30     0       1-15
1-15      10      10      1-15
1-13              20      补足
1-17      10      0        1-17
1 回复
#2
mywisdom882020-11-27 22:03
一般,入库 正,出库 负
1