Skip to content
Advertisement

Extrapolate Data

I have the following two tables in my database. One holds transaction data and the other holds development periods.

Year,   DevelopmentPeriod,   Amount
2018,   9,                   13200
2018,   10,                  13200
2018,   11,                  17625
2018,   12,                  17625
2018,   13,                  13200.0165
2018,   14,                  13200.0165
2018,   15,                  13200.0165

UnderwritingYear,   DevelopmentPeriod
2018,               1
2018,               2
2018,               3
2018,               4
2018,               5
2018,               6
2018,               7
2018,               8
2018,               9
2018,               10
2018,               11
2018,               12
2018,               13
2018,               14
2018,               15
2018,               16
2018,               17
2018,               18
2018,               19
2018,               20
2018,               21
2018,               22
2018,               23

How can I extrapolate the data into the future development periods like below?

Year,   DevelopmentPeriod,   Amount
2018,   16,                  13200.0165
2018,   17,                  13200.0165
...
2018    22,                  13200.0165
2018    23,                  13200.0165

Advertisement

Answer

One method uses cross apply:

select t2.*, t1.amount
from table2 t2 cross apply
     (select top (1) t1.*
      from table1 t1
      where t1.year = t2.UnderwritingYear and
            t1.DevelopmentPeriod <= t2.DevelopmentPeriod
      order by t1.DevelopmentPeriod desc
     ) t1;
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement