показать сумму результатов группы по дате mysqli - PullRequest
0 голосов
/ 09 июля 2019

У меня проблема с показом неверного результата, когда мне нужно показать таблицу с общей ценой. 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

1 Ответ

0 голосов
/ 09 июля 2019

Я вижу 2 ошибки в вашем запросе:

  1. Вы группируете по order_id, когда вы должны группировать по order_date.
  2. При умножении значений в запросе вы должныSUM результат операции, но вы суммируете ее факторы.

Тем не менее, ваш запрос должен быть:

SELECT
    *,
    SUM(order_quantity * order_price) as total 
FROM 
    o_orders_f 
GROUP BY 
    order_date
...