T-SQL | Аналитический подход как альтернативное решение

В этом разделе приведен вариант аналитического решения (альтернатива рекурсивному), на примере рекурсивной функции расчета суммы банковского вклада и полученных по нему доходов (см. функцию dbo.OverallAmount(@years integer, @accrual float, @amount float).

 

Приведенная в примере рекурсивная функция, переписана под аналитический метод решения:

 


/*

Есть длительность вклада, % годового дохода, сумма вклада

Вычисляем общую сумму банковского вклада и полученных по нему доходов

@years         – длительность вклада

@accrual         – начисляемый годовой доход (%)

@amount         – изначальная сумма вклада

*/

Create function dbo.OverallAmountSYMBOLIC(@years integer, @accrual float, @amount float)

Returns float

Begin

 Return @amount * Power(1+@accrual, @years) -- сумма вклада помноженная на доход (1+@accrual)

                                                           -- в степени относительно длительности вклада (@years)

                                                           -- (1 год в первой степени, 2 года во второй степени и так далее)

End


 

Например:

 

OverallAmountSYMBOLIC(0, 0.10, 100 000) = 100 000 * 1,100 = 100 000 * 1 = 100 000

OverallAmountSYMBOLIC(1, 0.10, 100 000) = 100 000 * 1,101 = 100 000 * 1,10 = 110 000

OverallAmountSYMBOLIC(2, 0.10, 100 000) = 100 000 * 1,102 = 100 000 * 1,10 * 1,10 = 121 000

 



© 2018 | Анна Петросян | pashelp@yandex.ru