[英]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.