如何解决用于将成本摊销到以下月份的 SQL
我遇到了一个问题,尝试找出在 SQL 中编写代码的方法,以便将成本从原始成本表中分摊到接下来的几个月中,其中有成本开始月份和总成本以及要分摊的月数.
示例如下: 1 原始成本表
MONTH_INCEPTION MERCHANT_ID TENOR TOTAL COST
1/1/2020 A01 10 5,000
2 结果表应如下所示:
MONTH_ID TENURE MERCHANT_ID SUB_RATE TENOR AMOUNT_SUB
1/1/2020 0 A01 10% 10 500
1/2/2020 1 A01 10% 10 500
1/3/2020 2 A01 10% 10 500
1/4/2020 3 A01 10% 10 500
1/5/2020 4 A01 10% 10 500
1/6/2020 5 A01 10% 10 500
1/7/2020 6 A01 10% 10 500
1/8/2020 7 A01 10% 10 500
1/9/2020 8 A01 10% 10 500
1/10/2020 9 A01 10% 10 500
提前致谢!
解决方法
您可以在下面使用:
select <original Cost Table>.*,b.Tenure,TOTAL COST/TENOR As Amount_SUB from <original Cost Table>,(
SELECT Level-1 AS Tenure
FROM Dual
CONNECT BY Level <= 10 ) b
where <original Cost Table>.TENORE > b.Tenure;
,
您需要根据 tenor
值生成如下行:
Select add_months(month_id,lvls.column_value) as month_id
lvls.column_value - 1 as tenure,t.merchant_id,Round(100/t.tenor,2) as sub_rate,T.tenor,Round(t.amount/t.tenor) || '%' as amount_sub
From your_table t
cross join table(
cast(multiset(
select level
from dual
connect by level <= t.tenor)
as sys.odcivarchar2list)
) lvls
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。