作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个产品具有相同的唯一代码(数据库表):
+----------------------------------+-----+-------+
| CODE | QTY | Price |
+----------------------------------+-----+-------+
| 977b8213fd7s7d0129f4358a75ca967f | 143 | 11.83 |
| 977b8213fd7s7d0129f4358a75ca967f | 31 | 10.48 |
+----------------------------------+-----+-------+
我必须对QTY
和Price
求和并相乘才能得到总价。
在上面的示例中,总价应为 2016.57 (11.83 × 143 + 10.48 × 31 = 2016.57)。
我尝试了这个,但我得到了两个总数(1691.69 和 2016.57):
$code = "977b8213fd7s7d0129f4358a75ca967f";
$ttl=0;
try{
$database = new Connection();
$db = $database->openConnection();
$sql= "SELECT qty*rraate AS sum FROM carrrt WHERE code = :code";
$qry = $db->prepare($sql);
$qry -> bindParam(':code', $code, PDO::PARAM_INT);
$qry -> execute();
while ($qnow = $qry->fetch(PDO::FETCH_ASSOC)){
$ttl += $qnow['sum'];
echo $ttl;
}
} catch (PDOException $e) {
echo "There is some problem in connection: " . $e->getMessage();
}
为什么我得到两个总数以及我做错了什么?
最佳答案
听起来您想使用聚合。
看看这是否可以解决您的问题
$sql= "SELECT SUM(qty*rraate) AS sum FROM carrrt WHERE code = :code";
我使用的 select 中的 SUM()
称为聚合,这是从每一行收集数据并将其组合成某个值的主要方法。
除非您使用聚合,否则表中的每一行都会得到不同的答案。有关聚合的更多信息,您可以查看here
关于php - mysql如何对两行进行求和和相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49639665/
我是一名优秀的程序员,十分优秀!