降级期票折扣金额

问题描述 投票:0回答:1

AMORTIZATION DATE DISCOUNT AMORTIZATION MATURITY DATE 02/09/2023 511824313.83 12/28/2025 03/07/2023 -9001548.39 12/28/2025 03/31/2023 -14080392.04 12/28/2025 04/28/2023 -13775775.36 12/28/2025 05/31/2023 -14391250.04 12/28/2025 06/30/2023 -14079908.22 12/28/2025 07/31/2023 -14708970.96 12/28/2025 08/31/2023 -14873114.19 12/28/2025 09/29/2023 -14551347.67 12/28/2025 10/31/2023 -15201473.40 12/28/2025 11/30/2023 -14872603.13 12/28/2025 12/31/2023 -15537081.92 12/28/2025 01/31/2024 -15710466.37 12/28/2025 02/29/2024 -14855567.70 12/28/2025 03/29/2024 -16051564.84 12/28/2025 04/30/2024 -15704303.60 12/28/2025 05/31/2024 -16405941.14 12/28/2025 06/28/2024 -16051013.29 12/28/2025 07/31/2024 -16768141.14 12/28/2025 08/30/2024 -16955263.46 12/28/2025 09/30/2024 -16588451.51 12/28/2025 10/31/2024 -17329591.05 12/28/2025 11/29/2024 -16954680.86 12/28/2025 12/31/2024 -17712182.81 12/28/2025 01/31/2025 -17909840.06 12/28/2025 02/28/2025 -16348354.59 12/28/2025

没有人知道系统如何进行摊销,以及如何在SQL中复制它?

oracle-您应该将其调整为rdbms ...

摊销是每年计算的。您应该创建一种数天数的年度日历:

sql accounting amortization
1个回答
0
投票

...样本数据

tbl AS ( Select DATE '2023-02-09' "AMORTIZATION_DATE", 1826971500.00 "PAR_VALUE", 511824313.83 "DISCOUNT", 1826971500.00 - 511824313.83 "DISCOUNTED_VALUE", 0.0972 "DISCOUNT_RATE", 0.135028 "INTEREST_RATE", DATE '2025-12-28' "MATURITY_DATE" From Dual ),
...准备计算数据 - 获取yr_ratio与Discount_rate

一起使用

grid AS ( Select c.ID, t.PAR_VALUE, Case When Extract(Year From t.AMORTIZATION_DATE) = Extract(Year From c.YR_END) Then t.AMORTIZATION_DATE Else ADD_MONTHS(c.YR_END, -12) + 1 End "START_DATE", Case When Extract(Year From t.MATURITY_DATE) = Extract(Year From c.YR_END) Then t.MATURITY_DATE Else c.YR_END End "END_DATE", -- ( Case When Extract(Year From t.MATURITY_DATE) = Extract(Year From c.YR_END) Then t.MATURITY_DATE Else c.YR_END End - Case When Extract(Year From t.AMORTIZATION_DATE) = Extract(Year From c.YR_END) Then t.AMORTIZATION_DATE Else ADD_MONTHS(c.YR_END, -12) End ) / c.DAYS "YR_RATIO", t.DISCOUNT_RATE From cal c Inner Join tbl t ON( t.AMORTIZATION_DATE <= c.YR_END ) )
...现在您可以进行计算

-- M a i n S Q L Select ID, START_DATE, END_DATE, PAR_VALUE, Round(YR_RATIO, 6) "YR_RATIO", DISCOUNT_RATE, Round(PAR_VALUE * YR_RATIO * DISCOUNT_RATE, 2) "DISCOUNT" From grid

Id
-start_dateEND_DATEPAR_VALUEyr_ratiodiscount_ratediscount109-FEB-2331-DEC-231826971500.890411.0972158120629.27201-JAN-2431-DEC-2418269715001.0972177581629.8301-JAN-2528-DEC-251826971500.991781.0972176122054.76如果您将折扣列总结,您将获得511,824,313.83。 注意: 这里不需要利率。 Fiddle


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.