首页 > 解决方案 > 使用 FIFO 的到期和赎回

问题描述

我正在验证一个 FIFO 系统的赎回和到期,但我不太确定如何获得我需要的东西。该系统的配置方式是将收入、调整(上下)和赎回保存在三个不同的表中,并具有交易日期和该表唯一的交易 ID。规则非常简单。如果未在 180 天内从帐户中兑换或调整,添加到您帐户的任何收入或调整都将失效。如前所述,这使用先进先出逻辑,这对于赎回和调整都是正确的。我们最近遇到了一个问题,运行到期的作业在被发现之前被意外关闭了几个月。现在我们需要识别/验证适当的到期金额。

这是供应商的程序,因此我无法访问到期作业背后的实际代码,虽然供应商提供了他们认为正确答案的列表,但他们过去给出的答案不完整,因此我们需要验证他们的建议实际上是我们需要做的。

在考虑如何执行此操作时,我得出的结论是,您必须查看每个帐户的整个生命周期,以查看需要过期的金额,因为它始终是一个移动目标。但我无法确定如何到达终点。我可以将添加到帐户中的所有收入和调整加起来,然后减去帐户中所有赎回和调整的总和,以获得从帐户开始到任何给定时间的余额,以获得当前余额。我认为这可能有助于进入到期金额的最后一步,但我无法弄清楚下一步。

表结构:

Earnings (
    Accountnum bigint,
    TransDate datetime,
    Amount numeric(18,2)
)

Adjustments (
    Accountnum bigint,
    TransDate datetime,
    Amount numeric(18,2)
)

Redemptions (
    Accountnum bigint,
    TransDate datetime,
    Amount numeric(18,2)
)

标签: fifosql-server-2019

解决方案


推荐阅读