Расчет бегового остатка

Я не понимаю, как рассчитать динамический беговой баланс. Вот что у меня есть.

  • Диапазон периодов с пересечением между общей продолжительностью и каждым месяцем продолжительности.

  • Ставка, которая применяется на каждом перекрестке.

  • Начальная сумма

  • Необходимость рассчитать текущий баланс на основе начальной суммы за вычетом ставки, применявшейся в этот период.

Например, у меня есть проект стоимостью 2 500 000 долларов, рассчитанный на 8 месяцев. Ставки для каждого интервала следующие: 1. 8,10% 2. 14,04% 3. 26,8% 4. 29,1% 5. 33,4% 6. 30,4% 7. 47,4% 8. 100%

Для периода 1 у меня есть 202500 долларов (8,10% × 2,5 миллиона долларов), для периода 2 у меня 322 500 долларов (14,04% × 2297 500 долларов (2,5 - 202500 долларов)), для периода 3 у меня есть 530 000 долларов (26,8% × 1 974 999 долларов (2,5 доллара - сумма первые два периода (525 000 долларов). В конце периода 8 мой баланс равен 0 долларов, а моя заработанная сумма = 2,5 миллиона долларов.

Могу я использовать что-нибудь вроде RunningTotal = Sum(MonthlyAmts) OVER (ORDER BY XX ROWS UNBOUNDED PRECEDING), ORDER BY Period? Или это кандидат на курсора?

Заранее спасибо!


person TomLenzmeier    schedule 17.11.2016    source источник
comment
Вы можете предоставить нам образцы данных?   -  person DVT    schedule 17.11.2016
comment
Сумма - 2 500 000 долларов. Срок - 8 месяцев. Ставки составляют 8,1% для периода 1, 14,4% для периода 2, 26,8% для периода 3, 29,1% для периода 4, 33,4% для периода 5, 30,4% для периода 6, 47,4% для периода 7 и 100% для периода 8. В период 1 заработанная сумма составляет 202 500 долларов, что составляет 2 500 000 долларов x 8,1%. В период 2 сумма составляет 322 500 долларов, что составляет 2 500 000 долларов США - 202 500 долларов США x 14,4%. В периоде 3 сумма составляет 530 000 долларов США, что составляет 2 500 000 долларов США - (сумма сумм, заработанных в периоды 1 и 2) x 26,8%. Этот уменьшающийся баланс в конечном итоге достигает 0 долларов, а заработанная сумма достигает 2 500 000 долларов.   -  person TomLenzmeier    schedule 17.11.2016
comment
Я имел ввиду, в виде таблиц. И ожидаемый результат.   -  person DVT    schedule 17.11.2016
comment
Продолжительность проекта: 8 месяцев, сумма = 2 500 000 долларов США Ставка за период Сумма остатка 1 0,081 202 500,00 долларов США 2 500 000,00 долларов США 2 0,14036997 322 500,01 долл. США 2 297 500,00 долл. США 3 0,26835443 530 000,00 долл. США 1 974 999,99 4 0,29065744 420 000,00 долл. США 1 455 000,00 долл. США 1 974 999,99 4 0,29065744 4,29065744 420 000,00 долл. США 1 455 000,00 долл. США 5 0,33414634 250,00 долл. США   -  person TomLenzmeier    schedule 17.11.2016
comment
Я попытался ввести это в виде таблицы, но не знаю, как это будет отображаться в браузере.   -  person TomLenzmeier    schedule 17.11.2016


Ответы (1)


Это зависит от структуры вашей таблицы. Но похоже, что вам следует использовать функцию. Если вы хотите, чтобы все годы использовали табличную функцию, если вас интересует только результат, используйте скалярную функцию. Или лучше с рекурсивным CTE.

person Deadsheep39    schedule 17.11.2016