簡體   English   中英

函數SQL SUM查詢

[英]function SQL SUM query

我有一個像這樣的數字表:

 ______________________________________
| 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    |
|_________|__________|______|__________|

現在我想計算它們並用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();
    }

我通過以下方式調用此函數:

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

        echo $counting['totaldistance'];
?>

現在輸出是正確的。
(3.2800000000000002)這是25.000的百分比
但我想添加5000像:

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

但是當我這樣做時,輸出產生一些隨機的東西,如: 840

為什么會這樣做,我該如何解決這個問題?

基礎數學。 你在做

                       5000
  sum(distance) + --------------
                     25000 * 100

什么時候你真的想要

  sum(distance)  + 5000
  ------------------------
        25000 * 100

嘗試

SELECT (sum(distance)+(5000))/(25000)*(100)
       ^--------------------^

代替。 注意額外的括號。

並記住舊的BEDMAS助記符:括號,指數,除法,乘法,加法,減法......

試試:

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

部門優先考慮和操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM