我需要你的帮助 . 我有两张 table PaymentsInvoices .

我需要一个触发器,当我插入付款行时,会自动将付款与发票开始关联,发票的最早日期最新到最新日期 . 例:

我有2张发票 . 第一张发票金额为€100.00,日期为2018年5月1日,第二张发票金额为200.00欧元,日期为2018年6月1日 . 我收到250.00欧元的付款 . 当我在我的付款表中输入此付款时,我需要一个触发器,在付款表中拆分付款,如下所示:€100.00以支付第一张发票,即第一张发票,其中包含最早的日期,剩余的€150.00在第二张发票上 . 随后,必须在发票表的“amount_recovered”字段中输入已恢复的金额 .

我的另一个问题是:当付款金额大于发票金额的总和时,我需要在指定为“利息收集”的另一个字段中输入额外金额,并且当付款金额更高时甚至比票据金额加上利息金额的总和,我需要将它与另一个名为“费用”的字段联系起来 .

示例:我有2个发票 . 第一张发票金额为100欧元,日期为2018年5月1日,第二张发票金额为200欧元,日期为2018年6月1日 . 我收到400欧元的付款 . 付款应在付款表中以这种方式划分:

€100.00以支付第一张发票 . €200.00以支付第二张发票 . 50.00欧元以支付利息金额(如果利息金额为100欧元,则所有剩余的100欧元将用于支付利息) . 50欧元以支付费用 .

付款表应在上传后包含以下行:

Id_Payment | Type_Payment | Mod_Payment | PAYMENT_AMOUNT
1          | Invoice      | CreditCard  | € 100.00
1          | Invoice      | CreditCard  | € 200.00
1          | Interests    | CreditCard  | € 50.00
1          | expenses     | CreditCard  | € 50.00

发票表应如下所示:

Id_Invoices | Invoice_Date | Amount_Invoice | Recovered Amount
1           | 1 May 2018   | € 100.00       | € 100.00
1           | 1 June 2018  | € 200.00       | € 200.00

如果我的问题太复杂, Build 触发器需要很长时间,我也可以付钱 .

非常感谢大家,安德鲁