0

次の属性を持つテーブルを作成しました。

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

上記のテーブルでVen_Invoice_RefNo、POP アップ 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 に答える