전체 회계 연도의 재무 잔액에 대한이자를 계산하고 싶습니다. 원장 테이블에 엔트리가있을 때 특정 일자에 대한 잔액을 얻을 수 있지만, 엔트리가 없을 때는 내이자 계산이 엉망이됩니다. 1303.87의 균형이 실행, 이제 논리적으로이자 계산을위한 누계 계산
Clientcode Date Ledger Running BalanceInterest
00100VS055 01/04/2013 1303.87 1303.87 64.3
00100VS055 15/05/2013 337.08 1640.95 80.92
: 결과 아래
Select ledger.oowncode as "Clientcode",
to_char(ledger.dtoftran, 'DD/MM/YYYY') as "Date",
sum(ledger.damount - ledger.camount) as "Ledger",
Sum(Sum(Ledger.Damount - Ledger.Camount)) over(Partition by Ledger.Oowncode Order by Ledger.Oowncode,ledger.dtoftran rows between unbounded preceding and current row) as "Running Balance",
round((Sum(Sum(Ledger.Damount - Ledger.Camount)) over(Partition by Ledger.Oowncode Order by Ledger.Oowncode,ledger.dtoftran rows between unbounded preceding and current row)*18/365),2) as "Interest"
from ledger ledger
where ledger.firmnumber = 'SUG-000001'
and ledger.oowncode = '00100VS055'
and ledger.dtoftran >='01-APR-2013'
and ledger.dtoftran <='31-MAY-2013'
group by ledger.oowncode, ledger.dtoftran
된다 : 아래
OOWNCODE DTOFTRAN VOUCHER DRCR DAMOUNT CAMOUNT
00100VS055 04/01/2013 OPNG001NSE0 Debit 1303.87 0.00
00100VS055 05/15/2013 JVOFSET0000025 Debit 337.08 0.00
실행 원장 균형 쿼리입니다 : 다음은 원장 테이블입니다 2013 년 5 월 15 일까지 매일 매일의 잔고를 계산 한 다음 1640.95는 다음날의 잔고입니다. 나는 결과는 다음과 같이 할 것을 권장합니다
Clientcode Date Ledger Running Balance Interest
00100VS055 01/04/2013 1303.87 1303.87 64.3
00100VS055 02/04/2013 1303.87 1303.87 64.3
00100VS055 03/04/2013 1303.87 1303.87 64.3
00100VS055 04/04/2013 1303.87 1303.87 64.3
등 최대 전까지 15
.
00100VS055 15/05/2013 337.08 1640.95 80.92
2013 년은 당신이 나를이 땅에 도움을 주시기 바랍니다 수 있습니다? 출력 아래
WITH l AS
(SELECT oowncode,dtoftran,damount,camount from ledger
WHERE firmnumber='DDA-000001' and oowncode='ACCOPEN'
GROUP BY oowncode,dtoftran,damount,camount)
Select l.oowncode,cte_dates.dtoftran,sum(l.damount-l.camount) running
From (SELECT dtoftran
FROM ledger
WHERE dtoftran BETWEEN
TO_DATE('01/04/2011', 'DD/MM/YY')
AND TO_DATE('31/03/2012', 'DD/MM/YY') group by dtoftran) cte_dates
left outer join l
partition by (oowncode) on (cte_dates.dtoftran = l.dtoftran)
group by l.oowncode,cte_dates.dtoftran
그리고있다 :
1 ACCOPEN 01/04/2011 12350
2 ACCOPEN 02/04/2011
3 ACCOPEN 04/04/2011
4 ACCOPEN 05/04/2011
5 ACCOPEN 06/04/2011
6 ACCOPEN 07/04/2011 2600
7 ACCOPEN 08/04/2011 -650
8 ACCOPEN 09/04/2011
9 ACCOPEN 11/04/2011
10 ACCOPEN 12/04/2011
11 ACCOPEN 13/04/2011 650
12 ACCOPEN 14/04/2011
13 ACCOPEN 15/04/2011 9100
14 ACCOPEN 16/04/2011
나는 심지어 02/04에서 원하는을
안녕하세요 데이비드,
당신의 도움이 당으로 내가 필요한 코딩을 수행 한/2011 그것은 windowing 절의 누계를 가져와야합니다. 내가 어디에서 잘못했는지 안내해 줄 수 있니?
안녕 다윗 당신의 지침을 주셔서 감사합니다,하지만 어떻게 든 당신이 나에게 쿼리를 제공 할 수있는 동일한 작업을 수행 할 수없는 메신저, 사전에 감사 – user3064554
당신이 도움이 될 수 누락 된 날짜와 누계에 관한 나 – user3064554