0

我创建了一个具有以下属性的表:

VendorAccount(
  Ven_AccountId, 
  Ven_RegNo,   
  Ven_TxDate,   
  Ven_Invoice_RefNo,    
  TotalAmount,
  Paid_ToVen ,    
  Balance
)

在上表中,当我Ven_Invoice_RefNo从 POP up LOV 中选择时,它给了我TotalAmount另一个表中的值。我希望每当我在 Paid_ToVen列中输入值时,应该从Total_Amountas中减去该金额,Balance并且新的减去值应该显示TotalBalance在下一个条目的列中. 以下是该表的报告。 报告

TotalAmount我想要新条目中列中的更新值,即 2300 。是否有任何 Trigger 或 Query 。

4

1 回答 1

1

您可以尝试trigger更新后。您将需要如下所示的逻辑。请根据您的表格使用正确的字段并尝试一下。

CREATE TRIGGER trg_totalBalance AFTER UPDATE ON vendoraccount
FOR EACH ROW
BEGIN
  DECLARE new_balance INT;
  DECLARE new_total INT;
  DECLARE new_paid INT;

   SELECT balance INTO old_balance, 
   total INTO old_total,
   paidtoven INTO new_paid 
   FROM vendoraccount
   WHERE ven_regno = new.ven_regno
   AND ven_invoice_refno = new.ven_invoice_refno;

   -- depending on your current balance update logic,
   --  you could wrap this update with an IF/ELSE
   -- IF XYZ THEN
   UPDATE vendoraccount SET totalamount = old_total + old_balance - new_paid,
   balance = totalamount - new_paid
   WHERE ven_regno = new.ven_regno
   AND ven_invoice_refno = new.ven_invoice_refno;
   -- END IF;
END;
于 2012-12-01T08:58:27.853 回答