SQL触发器插入行

时间:2018-06-22 17:01:11

标签: sql split triggers payment

我需要你的帮助。我有两个表PaymentsInvoices

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

我有2张发票。第一张发票金额为100欧元,日期为2018年5月1日,第二张发票金额为200欧元,日期为2018年6月1日。 我会收到€250.00的付款。 当我在“付款”表中输入此付款时,我需要一个触发器来按如下方式在付款表中拆分付款: €100.00支付第一张发票,该发票是最早的日期,第二张发票上的剩余€150.00。随后,必须在发票表的“ amount_recovered”字段中输入回收的金额。

我的另一个问题是: 当付款金额大于发票金额的总和时,我将需要在另一个字段中输入“利息收款”中的额外金额,并且当付款金额甚至高于发票金额的总和时帐单金额加上利息金额,我需要将其与另一个名为“费用”的字段相关联。

示例: 我有2张发票。第一张发票金额为100欧元,日期为2018年5月1日,第二张发票金额为200欧元,日期为2018年6月1日。 我会收到€400.00的付款。 付款方式应在付款表中进行划分:

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

上传后,工资表应包含以下几行:

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

如果我的问题太复杂,并且花费很长时间建立触发器,我也可以支付。

非常感谢大家, 安德鲁

0 个答案:

没有答案