简体   繁体   中英

PHP MYSQL query how to SUM only positive value

I want to know how to SUM only positive value for amountalldebt. Here are some of my code. From the code, i get amountalldebt of positive and negative value. How to get only all positive amountalldebt? Thank you

if($idrange=='0'):
     $where     = "AND c.debt > 0 OR c.debt < 0";
  elseif($idrange=='1'):
      $where    = "AND c.debt < 0";
  elseif($idrange=='2'):
      $where    = "AND c.debt >= 0 AND c.debt < 3000";
  elseif($idrange=='3'):
      $where    = "AND c.debt >= 3000 AND c.debt < 5000";  endif;

Here is my query

$querydebtor         = "SELECT * FROM
            (SELECT debtor,debt,
    SUM(case WHEN (debt < 0 ) then 1 else 0 end) AS debnegk,
    SUM(case WHEN (debt >= 0 AND debt < 3000) then 1 else 0 end) AS deb3k,
    SUM(case WHEN (debt >= 3000 AND debt < 5000) then 1 else 0 end) AS deb5k,
    SUM(debt) as amountalldebt
    FROM debt WHERE debt > 0 AND $where)";
    $ldebtor = $this->db->query($querydebtor)->result(); 

    foreach ($ldebtor as $x) {
    $amountalldebt   = $a->amountalldebt;}

    <td><?php echo $amountalldebt;?></td>

Filter it on your sql statement to show only positive value

$querydebtor         = "SELECT amountalldebt FROM
            (SELECT debtor,debt,
    SUM(case WHEN (debt < 0 ) then 1 else 0 end) AS debnegk,
    SUM(case WHEN (debt >= 0 AND debt < 3000) then 1 else 0 end) AS deb3k,
    SUM(case WHEN (debt >= 3000 AND debt < 5000) then 1 else 0 end) AS deb5k,
    SUM(debt) as amountalldebt
    FROM debt WHERE debt > 0 AND $where)";

$ldebtor = $this->db->query($querydebtor)->result(); 

    foreach ($ldebtor as $x) {
    $amountalldebt   = $amountalldebt + $x;}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM