【发布时间】:2019-05-22 12:36:42
【问题描述】:
我正在寻找一种方法来计算每周还款后的每月贷款余额,所有这些都在 SELECT query 中,看起来像
SELECT
CASE
WHEN frequency = 'Monthly' THEN balance * (1+ 1/12/100 * rate) - freq_based_payment
WHEN frequency = 'Biweekly' THEN...
WHEN frequency = 'Weekly' THEN...
END AS expected_balance
...
FROM table
例如,我可以编写这样的代码,但我正在寻找一种更好、更清洁的方法,因为在“每周”中它会变得很荒谬。
SELECT
CASE
WHEN frequency = 'Monthly' THEN balance * (1+ 1/12/100 * rate) - freq_based_payment
WHEN frequency = 'Biweekly' THEN
(balance * (1+ 1/26/100 * rate) - freq_based_payment) *
(1+ 1/26/100 * rate) - freq_based_payment
WHEN frequency = 'Weekly' THEN...
END AS expected_balance
...
FROM table
我是 SAS 和 proc sql 的新手,到目前为止,我找到了 MORT(),但它没有用。
【问题讨论】:
-
您所说的“每月余额......在每周付款后”到底是什么意思?另一个提示也是,一年没有 26 个双周,但我看到除以 26 - 如果你在做任何财务工作,需要考虑一下,因为总和通常很重要,如果“比率”是每年的数字,那么这些计算可能不会产生正确的结果。
-
请更新一些示例数据和所需的输出。与此同时,您可能想看看
sum() over -
@Steve 是的,我放 26 只是为了简化,实际上我使用 26.07142855。我正在重构一些代码,每个月底,他们都有一个包含余额和预期余额的表,以便能够在 balance_of_next_month != 预期余额的情况下计算预付款。这有点惨败,但我无法改变结构。
-
@JohnHC 如果我有 500 美元的余额和 20 美元的双周付款,我希望在 expected_balance_for_next_month 有 465,67 美元。实际的代码计算不正确,给出了 465,65$...而且数字越大,差异越大。
-
@wimz 编辑您的问题,提供示例数据和预期输出。这将是表格形式。