0

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

提前致谢!

4

2 回答 2

0

您需要根据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 
于 2020-12-26T07:47:33.107 回答
0

您可以在下面使用:

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;
于 2020-12-26T07:09:22.050 回答