У меня есть следующая (здесь упрощенная) база данных, и я хочу получить месяц с самым высоким доходом.
счета
- идентификатор
- идентификатор заказа
- выдано (отметка времени)
заказы
- идентификатор
orderItems
- id
- идентификатор_ заказа
- article_id
статьи
- id
- цена
Пока я получил следующее утверждение:
Select articles.price * orderItems.order_id as revenue, Extract(month
from invoices.issued)
FROM orderItems
INNER JOIN articles ON orderItems.article_id = articles.id
Inner JOIN orders ON orderItems.order_id = orders.id
Inner JOIN invoices ON orders.id = invoices.order_id
GROUP BY year(issued), month(issued)
Order by revenue DESC Limit 1
Расчетный доход неверен, так как цена умножена на order_id, но должна быть фактически умножена на количество соответствующих order_id.Я пытался реализовать count (orderItems.order_id), но он не работает.Есть идеи?Спасибо!