2016-04-06 17 views
1

Tüm borç ve çıkarma kredilerini borç tutarından satır satırından toplamak istiyorum. En iyi iki sıra gelen gibi toplamı ödeme miktarı ve ttl blnc sütun satır 3,4 göstermesi ve kredi çıkarma ancak aşağıda sonuç, sadece ödeme gelen kredi çıkarma doğru değilBorç ve kredi formülü nasıl yapılır

enter image description here

bu sonucu mi

debit Credit Running Total 
144  0  144 
264  0  408 
0  264  144 
0  441  -297 
2464  0  2167 
144  0  2311 
0  27306  -24995 
264  0  -24731 

bu kodum

result number:=0; 
begin 
    result:= result + debit - credit; 
    return result; 

cevap

1

kullanımı bu formulla olduğunu

RETURN(NVL(:CF_ttl_blnc,0)+NVL(:debit,0)-NVL(:credit,0)); 
0

Toplam satır-by-satırını görmek istediğinizi varsayarsak, SUM() analitik işlevini kullanırdım.

SELECT 
xti.dr_amount 
,xti.cr_amount 
,SUM(dr_amount-cr_amount) OVER (ORDER BY xti.invoice_num) running_total 
FROM 
xxcjp_test_invoices  xti 
ORDER BY 
xti.invoice_num 
; 

test verilerini oluşturmak için aşağıdaki kullanın

CREATE TABLE XXCJP_TEST_INVOICES 
(invoice_num VARCHAR2(10) 
,dr_amount  NUMBER 
,cr_amount  NUMBER 
) 
; 

INSERT INTO XXCJP_TEST_INVOICES VALUES ('A001',144,0) ; 
INSERT INTO XXCJP_TEST_INVOICES VALUES ('A002',264,0) ; 
INSERT INTO XXCJP_TEST_INVOICES VALUES ('A003',0,264) ; 
INSERT INTO XXCJP_TEST_INVOICES VALUES ('A004',0,441) ; 
INSERT INTO XXCJP_TEST_INVOICES VALUES ('A005',2464,0) ; 
INSERT INTO XXCJP_TEST_INVOICES VALUES ('A006',144,0) ; 
INSERT INTO XXCJP_TEST_INVOICES VALUES ('A007',0,27306) ; 
INSERT INTO XXCJP_TEST_INVOICES VALUES ('A008',264,0) ; 
INSERT INTO XXCJP_TEST_INVOICES VALUES ('A009',55500,0) ;