То, что вы хотите сделать, это суммировать значения заказа для производителя Стоимость заказа определяется ценой, количеством и скидкой. Поскольку в таблице customer_orders можно найти только последние 2, вам нужно присоединиться к таблице Products.
Это можно сделать с помощью следующего запроса:
select * from customer_orders
inner join products on products.id = customer_orders.product_id
Но так как мы должны сгруппировать их по производителю, нам также понадобится имя или идентификатор производителя, поэтому мы также должны присоединиться к таблице производителей:
select * from customer_orders
inner join products on products.id = customer_orders.product_id
inner join producers on producers.id = products.producer_id
Теперь вы выбираете всю необходимую вам информацию. Для выполнения расчетов вам необходимо заменить звездочку на:
(customer_orders.quantity * customer_orders.discount) - products.price
, которая даст вам стоимость каждого заказа.
Чтобы суммировать все заказы для данного производителя, вам нужно заключить вышеприведенную строку в функцию SUM()
, и вам нужно добавить предложение GROUP BY
в конце запроса.
select SUM( (customer_orders.quantity * customer_orders.discount) - products.price) as value, producers.name from customer_orders
inner join products on products.id = customer_orders.product_id
inner join producers on producers.id = products.producer_id
group by producers.name