[英]How to Calculate Numbers from Mysql
我在mysql中有“ P_L”列,其中有关于损益的数字,有状态的列“ Status”中有状态-如果这些数字是正数还是负数。
说明:50利润= + 50,30损失=-30
我试图计算这些数字以获得总利润/亏损,但是有些不起作用。 下面的代码输出是:+ 50-30 + 50-25-15
那么,如何计算P_L列呢? 这样的事情有可能吗?
谢谢!
表看起来像这样:
+-------+---------------+--------+-----------+
| Id | Date Added | P_L | Status |
+-------+---------------+--------+-----------+
| 1 | 2017-12-2 | 50 | Profit |
| 2 | 2017-12-3 | 30 | Loss |
| 3 | 2017-12-4 | 50 | Profit |
| 4 | 2017-12-5 | 25 | Loss |
| 5 | 2017-12-6 | 15 | Loss |
+-------+---------------+--------+-----------+
我的PHP代码的一部分。
.
.
.
while($row = mysqli_fetch_array($result)) {
$id = $row['id'];
$date_added = $row['date_added'];
$p_l = $row['p_l'];
$status = $row['status'];
if($status == 'Profit') {
$number = "+ $p_l";
} elseif($status == 'Loss') {
$number = "- $p_l";
}
$total = $number . " ";
echo "$total";
}
您可以使用IF()对MySQL查询中的P_L列求和:
SELECT SUM(IF(Status = 'Profit', P_L, -1 * P_L)) AS profit_and_loss FROM tableName;
将总数放在循环之外。
创建一个从零开始的占位符/容器,然后根据实际值添加/减去:
在以下代码的指导下,由于未提供表结构,因此将p_l
列转换为其floatval()
。
$total = 0; # placeholder
while($row = mysqli_fetch_array($result)) {
$id = $row['id'];
$date_added = $row['date_added'];
$p_l = $row['p_l'];
$status = $row['status'];
$number = floatval($p_l);
if($status == 'Profit') {
$total = $total + $number;
} elseif ($status == 'Loss') {
$total = $total - $number;
}
}
echo "$total";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.