Нужный метод - ключевое слово GROUP BY.
SQL группировка работает по заданным атрибутам. По вашему вопросу это будет delivery_date
. В проекции (атрибуты после ключевого слова SELECT) вы можете использовать атрибуты, которые вы указали после ключевого слова GROUP BY, и функции агрегирования, например, SUM и MAX.
На основании вашего вопроса вы можете получить общую цену для всех заказов на данную дату следующим образом:
SELECT order.delivery_date, SUM(food.food_quantity) as amount, SUM(food.food_total_price) as revenue
FROM tbl_order as order
INNER JOIN tbl_order_foods as food ON order.id_order = food.id_order
GROUP BY order.delivery_date
В результате вы получите такой список:
date | amount | revenue
------------------------
05.01| 10 | 800.00
Я не знаю, действительно ли это то, что вы будете sh. Если вы также хотите разделить его на позиции заказа, вы также должны сгруппировать BY * food_name
и добавить его к проекции, в результате чего получится сумма, сгруппированная по заказам в определенный день для данного продукта.
SELECT order.delivery_date, food.food_name, SUM(food.food_quantity) as amount, SUM(food.food_total_price) as revenue
FROM tbl_order as order
INNER JOIN tbl_order_foods as food ON order.id_order = food.id_order
GROUP BY order.delivery_date, food.food_name
Что приведет к чему-то вроде этого.
date | food_name | amount | revenue
-----------------------------------
05.01| Tomato | 10 | 800.00
05.01| Apple | 5 | 400.00