2017-08-10 29 views
1

我试过减去从ms sql server中取得的两个值,但是出现错误。ms sql的值在php中减去时出现错误

下面是我的查询:

$amtdue = "select sum(case when principal < 0 then principal else 0 end) as overdue, sum(case when principal >= 0 
          then principal else 0 end) as overdue2 from loanhist where ac_no='$id' and trx_date <='$date' group by ac_no"; 
          $amt = sqlsrv_query($conn, $amtdue); 
          $aod = sqlsrv_fetch_array($amt, SQLSRV_FETCH_ASSOC); 

          $amtdues = "select loan_amt from loans where ac_no='$id'"; 
          $amts = sqlsrv_query($conn, $amtdues); 
          $lo = sqlsrv_fetch_array($amts, SQLSRV_FETCH_ASSOC); 

这里是值:

       $m = $lo['loan_amt']; //$m = 100000 
           $p = $aod['overdue']; //$p = -169172 
          $su = substr($p,1); 
          echo $su - $p; 

当我减去$p$m我找回$m这是169172.可有人请点我的正确的方向。

回答

0

您不是从$ m减去$ p!你在做什么是:

$m = 100000; //number 
$p = -169172; //number 
$su = substr($p,1); //now $su is 169172 
echo $su - $p; // 169172 -(-169172) 
//which is 338344 

你应该做的是(如果我理解正确)

$m = 100000; //number 
$p = -169172; //number 
$su = substr($p,1); //now $su is 169172 
echo $su - $m; // 169172 - 100000 
//which is 69172 
0

你的代码最后一行:

echo $su - $p; 

是不是做你想要什么(p - m)

它应该是:

echo $su - $m; 

如果仍然输出0,我会建议您的$ m的SQL语句返回0.