2012-12-01 76 views
0

更新列我創建具有以下屬性表:與新條目

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

在上表中,當我選擇Ven_Invoice_RefNo從彈出LOV它讓我從另一個Table.I的TotalAmount想,每當我輸入Paid_ToVen列中的值,則應從Total_Amount減去該數量作爲Balance,新減值應顯示在下一項的TotalBalance列中。以下是表格的報告。 Report

我想更新的價值i - e 2300在TotalAmount列在新條目。有沒有觸發器或查詢。

+0

你可以顯示你當前的'select,insert'語句嗎? – bonCodigo

+1

您需要在更新時執行觸發器。我知道它在SQL中。 Oracle有點不同。在google中搜索 – polin

+0

@bonCodiho通過ven_inv_ref從vendor_invoicedetails組中選擇VEN_INV_REF,sum(unitprice * ven_itemquantity)作爲總數;這是通過我得到Total Balance的查詢。 –

回答

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; 
+0

只是想問你,你怎麼*更新*您的餘額目前?你是否更新餘額=全額付款?或者你把它保留爲0?你能告訴我們你當前對這張桌子的查詢嗎? – bonCodigo

+0

我把它留在0.平衡列是不必要的,據我所知在這個表 –

+0

@MuhammadUsman如果這個答案可以幫助你,請標記它來包裝的問題。所以其他人的努力可以保存爲像你的其他問題和請求:) – bonCodigo