函数SQL SUM查询

Mit*_*tch 2 php mysql mysqli sum

我有一个像这样的数字表:

 ______________________________________
| axle_id | train_id | axle | distance |  
|_________|__________|______|__________|   
|   1     |     1    |   1  |    20    |
|   2     |     1    |   2  |    50    |
|   3     |     1    |   3  |   200    |
|   4     |     1    |   4  |    50    |
|   5     |     1    |   5  |   200    |
|   6     |     1    |   6  |    50    |
|   7     |     1    |   7  |   200    |
|   8     |     1    |   8  |    50    |
|_________|__________|______|__________|
Run Code Online (Sandbox Code Playgroud)

现在我想计算它们并用SUM进行计算.我现在的代码:

function count_axles($id) {
        $sql = "SELECT sum(distance)/(25000)*(100) as totaldistance from axle WHERE train_id = :train_id";
        $sth = $this->pdo->prepare($sql);
        $sth->bindParam(":train_id", $id, PDO::PARAM_STR);
        $sth->execute();
        return $sth->fetchAll();
    }
Run Code Online (Sandbox Code Playgroud)

我通过以下方式调用此函数:

<?php
        $count_axle = $database->count_axles($_GET['train_id']);
?>
<?php      
    foreach($count_axle as $counting){ 
    }

        echo $counting['totaldistance'];
?>
Run Code Online (Sandbox Code Playgroud)

现在输出是正确的.
(3.2800000000000002)这是25.000的百分比
但我想添加5000像:

$sql = "SELECT sum(distance)+(5000)/(25000)*(100) as totaldistance from axle WHERE train_id = :train_id";
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,输出产生一些随机的东西,如: 840

为什么会这样做,我该如何解决这个问题?

Mar*_*c B 6

基础数学.你在做

                       5000
  sum(distance) + --------------
                     25000 * 100
Run Code Online (Sandbox Code Playgroud)

什么时候你真的想要

  sum(distance)  + 5000
  ------------------------
        25000 * 100
Run Code Online (Sandbox Code Playgroud)

尝试

SELECT (sum(distance)+(5000))/(25000)*(100)
       ^--------------------^
Run Code Online (Sandbox Code Playgroud)

代替.注意额外的括号.

并记住旧的BEDMAS助记符:括号,指数,除法,乘法,加法,减法......