2013-09-26 2 views
0

Я пытаюсь рассчитать баланс, причитающийся в этой функции, используя некоторые значения, которые находятся в таблице счетов. Я не совсем уверен, где именно разместить расчетную линию. Любая помощь приветствуется!Как выполнить вычисление нового параметра в Oracle SQL Function

Create or Replace Function Get_balance_due(
f_invoice_id In Number) 
Return Number 
AS 
    balance_due Number; 
    f_invoice_total Number; 
    f_payment_total Number; 
    f_credit_total Number; 


Begin 
    select (vendor_id into f_vendor_id, 
    invoice total into f_invoice_total, 
    payment_total into f_payment_total, 
    credit_total into f_credit_total) 

From 
    invoices 
Where 
    invoice_id = f_invoice_id 
    balance_due = f_invoice_total - f_payment_total - f_credit_total; 
Return (balance_due); 
End; 
/
SHOW ERRORS Function Get_balance_due; 

ответ

0

Попробуйте, как это,

CREATE OR REPLACE 
FUNCTION get_balance_due(
     f_invoice_id IN NUMBER) 
     RETURN NUMBER 
AS 
    balance_due NUMBER; 
    f_invoice_total NUMBER; 
    f_payment_total NUMBER; 
    f_credit_total NUMBER; 

BEGIN 
    SELECT invoice total, payment_total, credit_total 
    INTO f_invoice_total, f_payment_total, f_credit_total 
    FROM invoices 
    WHERE invoice_id = f_invoice_id; 

    balance_due := f_invoice_total - f_payment_total - f_credit_total; 

RETURN balance_due; 
END; 
Смежные вопросы