Ayer veíamos cómo calcular el capital final y los intereses sobre un importe aplicando la formula de la capitalización simple en una consulta de SQL-Server. Hoy vamos a ver cómo calcular el capital final, pero con la fórmula de la capitalización compuesta:
La capitalización compuesta es una fórmula financiera que permite calcular el equivalente de un capital en un momento posterior.
La diferencia entre la capitalización simple y la compuesta radica en que en la simple sólo genera intereses el capital inicial, mientras que en la compuesta se considera que los intereses que va generando el capital inicial, ellos mismos van generando nuevos intereses.
La fórmula para obtener el capital final sería Cf = C0 * (( 1 + i) ^ t) siendo C0 el capital inicial, i el tipo de interés y t el tiempo. Ahora supongamo, como en el ejemplo de la capitalización simple, que tenemos una tabla llamada Depositos con una columna Capital donde almacenamos el dato del capital inicial, que para el ejemplo serán 2000 euros (C0=2000), una columna Interes con el tipo de interés, que para el ejmplo será del 5% anual (i=0.05) y una columna Tiempo que será de 10 años.
Entonces ¿cómo nos quedaría la consulta?
Select CONVERT(float,Importe)*POWER(CONVERT(float,(1.00+Interes)),Tiempo) from Depositos
¿Por qué metí ahí las funciones CONVERT() para asegurarme de que los valores con los que se operan son float? Bueno, en el caso del importe porque ya sabéis, como comentamos anteriormente, que SQL-Server 2008 (también os comenté que estoy estudiando las versiones posteriores) convierte a enteros los resultados de las operaciones si operamos con algún entero en las mismas. En el caso del segundo es por el funcionamiento de la función POWER(). Dicha función recibe dos parámetros y devuelve el valor del primer parámetro elevado al valor del segundo parámetro, pero el tipo de dato devuelto es siempre el mismo tipo que el enviado en el primer parámetro. Si, por ejemplo, recibe un valor Numeric(4,2) redondearía el resultado a dos decimales y nos daría un resultado bastante impreciso por ello.