将公式转换为 SQL 查询
Converting a formula into a SQL query
我正在构建一个系统,它将向用户输出当前总余额。
我有三个 MySQL table,第一个 Members
table 其中用户数据会话获得 Member_ID
第二个是 Regular_Savings
和第三个(输出Table)Current_Balance
我有计算利息的数学公式(见下文)
我想 Total_Balance
在 Current_Balance
table 中使用输出当前余额,我试图使用下面的查询但认为我犯了一些错误。
查询和 Codeigniter 模型代码
function get_bank()
{
$this->db->SELECT(`Principle` * (POWER((1 + (`Annual_Rate_Interest` DIV `Compound`)),(`Valid_For` * `Compound`)))) +((`monthly_deposit` * (POWER((1 + (`Annual_Rate_Interest` DIV `Compound`)),(`Valid_for` * `Compound`)) -1)) DIV(`Annual_Rate_Interest` DIV `Compound`)) as fav, $this->session->userdata("Member_ID"));
$query = $this->db->get('Regular_Savings');
return $query->result();
}
公式
非常感谢所有帮助,
谢谢。
******************更新*********************
正如评论中所建议的,我可以使用 PHP,我认为下面的代码很接近,但不正确,有什么想法吗?
可能的PHP解决方案
<?php
function interest($Principle,$Compound,$Annual_Rate_Intrest,$Valid_For){
$Accumulated=0;
if ($Compound > 1){
$Accumulated=interest($Principle,$Compound-1,$Annual_Rate_Intrest,$Valid_For);
}
$Accumulated += $Principle;
$Accumulated = $Accumulated * pow(1 + $Annual_Rate_Intrest/(100 * $Valid_For),$Valid_For);
return $Accumulated;
}
?>
使用您 table 中概述的速记,计算结果应该是
// p : principal
// i : annual rate interest
// c: compound
// n : valid for
// R : monthly deposit
// calculate the terms that appear twice
$x = $i / $c;
$y = pow ( (1 + $x), ($n * $c) );
$vf = $p * $y + ( ($R * $y - 1 ) / $x );
我正在构建一个系统,它将向用户输出当前总余额。
我有三个 MySQL table,第一个 Members
table 其中用户数据会话获得 Member_ID
第二个是 Regular_Savings
和第三个(输出Table)Current_Balance
我有计算利息的数学公式(见下文)
我想 Total_Balance
在 Current_Balance
table 中使用输出当前余额,我试图使用下面的查询但认为我犯了一些错误。
查询和 Codeigniter 模型代码
function get_bank()
{
$this->db->SELECT(`Principle` * (POWER((1 + (`Annual_Rate_Interest` DIV `Compound`)),(`Valid_For` * `Compound`)))) +((`monthly_deposit` * (POWER((1 + (`Annual_Rate_Interest` DIV `Compound`)),(`Valid_for` * `Compound`)) -1)) DIV(`Annual_Rate_Interest` DIV `Compound`)) as fav, $this->session->userdata("Member_ID"));
$query = $this->db->get('Regular_Savings');
return $query->result();
}
公式
非常感谢所有帮助, 谢谢。
******************更新*********************
正如评论中所建议的,我可以使用 PHP,我认为下面的代码很接近,但不正确,有什么想法吗?
可能的PHP解决方案
<?php
function interest($Principle,$Compound,$Annual_Rate_Intrest,$Valid_For){
$Accumulated=0;
if ($Compound > 1){
$Accumulated=interest($Principle,$Compound-1,$Annual_Rate_Intrest,$Valid_For);
}
$Accumulated += $Principle;
$Accumulated = $Accumulated * pow(1 + $Annual_Rate_Intrest/(100 * $Valid_For),$Valid_For);
return $Accumulated;
}
?>
使用您 table 中概述的速记,计算结果应该是
// p : principal
// i : annual rate interest
// c: compound
// n : valid for
// R : monthly deposit
// calculate the terms that appear twice
$x = $i / $c;
$y = pow ( (1 + $x), ($n * $c) );
$vf = $p * $y + ( ($R * $y - 1 ) / $x );