【问题标题】:SQL for amortization of cost into months following用于将成本摊销到以下月份的 SQL
【发布时间】:2020-12-26 03:30:34
【问题描述】:

我遇到了一个问题,尝试找出在 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

提前致谢!

【问题讨论】:

    标签: sql oracle schedule amortization


    【解决方案1】:

    你可以在下面使用:

    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;
    

    【讨论】:

      【解决方案2】:

      您需要根据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 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-31
        • 2023-03-13
        • 2011-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-08
        • 2013-07-02
        相关资源
        最近更新 更多