php - 按日期显示总和结果组 mysqli
问题描述
当我需要显示总价 ORDER BY order_date 的表格时,我有一个问题是显示错误的结果
我有一个数据库:
- order_id
- order_date
- order_price
- order_quantity
我试过了 :
$sql = mysqli_query($con,"SELECT *,
SUM(order_q) * SUM(order_price) as total
FROM o_orders_f
GROUP BY order_id");
但是这段代码将总结所有结果并给我错误的答案
$sql = mysqli_query($con, "SELECT *,
SUM(order_quantity) * SUM(order_price) as total
FROM o_orders_f
GROUP BY order_id");
while ($r = mysqli_fetch_array($sql)) {
$date = $r['order_date'];
$total = $r['total'];
echo $total;
}
我正在寻找的结果是这样的:
7 Jul, 2019 - total: ($r['quantity']* $r['price']) = 72933
8 Jul, 2019 - total: ($r['quantity']* $r['price']) = 453
9 Jul, 2019 - total: ($r['quantity']* $r['price']) = 72
解决方案
我在您的查询中看到 2 个错误:
- 当您应该按 分组时,您按 order_id 分组
order_date
。 - 在查询中乘以值时,您应该
SUM
计算运算的结果,但您正在将其因子相加。
也就是说,您的查询应该是:
SELECT
*,
SUM(order_quantity * order_price) as total
FROM
o_orders_f
GROUP BY
order_date
推荐阅读
- javascript - 角度 8 错误。类型上不存在“显示”
- office-addins - 当用户点击其他地方时,如何防止 On Send 加载项错误?
- node.js - 类型检查联合类型
- python - 如何获得张量形状python
- perl - 无法构建 Perl 模块 Net::MAC::Vendor
- c# - 从 appsettings.json 将多个端点路由添加到 .net 核心控制台应用程序
- java - 在 android 应用程序中发布 Api Rest 请求
- javascript - 将对象数组中的字符串格式化为单个字符串
- python - 使用 s3 和 python 编写和读取列表列表
- c++ - 编写程序使用动态解决货币行问题