0

我们有这样的桌子

Cumulative Paid Triangle                                            
               DP 1         DP 2        DP 3        DP 4        DP 5        DP 6        DP 7        DP 8        DP 9       DP 10    
    OP 1     3,57,848    11,24,788   17,35,330   22,18,270   27,45,596   33,19,994   34,66,336   36,06,286   38,33,515   39,01,463   
    OP 2     3,52,118    12,36,139   21,70,033   33,53,322   37,99,067   41,20,063   46,47,867   49,14,039   53,39,085      
    OP 3     2,90,507    12,92,306   22,18,525   32,35,179   39,85,995   41,32,918   46,28,910   49,09,315          
    OP 4     3,10,608    14,18,858   21,95,047   37,57,447   40,29,929   43,81,982   45,88,268               
    OP 5     4,43,160    11,36,350   21,28,333   28,97,821   34,02,672   38,73,311               
    OP 6     3,96,132    13,33,217   21,80,715   29,85,752   36,91,712                      
    OP 7     4,40,832    12,88,463   24,19,861   34,83,130                      
    OP 8     3,59,480    14,21,128   28,64,498                           
    OP 9     3,76,686    13,63,294                              
    OP 10    3,44,014                                       

对 DP3/DP2、DP4/DP3 等所有列使用公式 DP2/DP1。

从这个公式我们需要得到这样的表格

DP 1    DP 2    DP 3    DP 4    DP 5    DP 6    DP 7    DP 8    DP 9    DP 10
OP 1     3.14    1.54    1.28    1.24    1.21    1.04    1.04    1.06    1.02    -   
OP 2     3.51    1.76    1.55    1.13    1.08    1.13    1.06    1.09    -      
OP 3     4.45    1.72    1.46    1.23    1.04    1.12    1.06    -          
OP 4     4.57    1.55    1.71    1.07    1.09    1.05    -              
OP 5     2.56    1.87    1.36    1.17    1.14    -                  
OP 6     3.37    1.64    1.37    1.24    -                      
OP 7     2.92    1.88    1.44    -                          
OP 8     3.95    2.02    -                              
OP 9     3.62    -                                  
OP 10    -          

这是我尝试过的代码:此代码仅适用于有限数量的值(如 DP_1 到 DP_9),但是如果表中有大量值?

        result = cursor.execute("""
        Select
        D1 as DP1,
        D2 as DP2,
        D3 as DP3,
        D4 as DP4,
        D5 as DP5,
        D6 as DP6,
        D7 as DP7,
        D8 as DP8,
        D9 as DP9
        From (
        Select
            DP1,
            DP2,
            DP3,
            DP4,
            DP5,
            DP6,
            DP7,
            DP8,
            DP9,
            DP10,
            DP2 * (DP1 As d1,
            DP3 / DP2 As d2,
            DP4 / DP3 As d3,
            DP5 / DP4 As d4,
            DP6 / DP5 As d5,
            DP7 / DP6 As d6,
            DP8 / DP7 As d7,
            DP9 / DP8 As d8,
            DP10 / DP9 As d9
        from CumulativePaidTriangle
        )""" ```



                        


4

0 回答 0