我们正在编写一个库存系统,我们需要说明预期数量和计数数量之间是否存在差异,然后我们需要使用整数将差异按比例分配到记录中。例如:
Exepected:
Item | Quantity | Shelf
Banana | 2 | 1
Banana | 1 | 2
Banana | 2 | 3
计算:共9个。我们需要将3个记录(在整个香蕉中)的比例分配给3个记录,给出:
Item | Quantity | Shelf
Banana | 4 | 1
Banana | 2 | 2
Banana | 3 | 3
最终数量应与原始数量大致相同,并且总是在整个香蕉中。没有负香蕉可以存在,但记录最终可以为0。
以上只是一个例子。如果存在不同的数量,结果应该是相似的。
我们尝试过:
Ceiling(CountedQty * Expected/OriginalTotal) WHERE ROWNUMBER = 1
FLOOR(CountedQty * Expected/OriginalTotal) WHERE ROWNUMBER > 1
但是当CountedQty - OriginalTotal>这不起作用时2。
以前这已经在C#中使用循环完成,并保留了由于业务需求而我们试图避免的运行总计。