Создать рапорт с итогами - PullRequest
0 голосов
/ 01 марта 2019

Мне нужно создать сводный отчет.У меня есть две таблицы, с продуктами и заказами.Я хочу создать это:

Results

Из двух таблиц:

Продукты

Products

Заказы

Orders

Я пытаюсь выполнить запрос:

 SELECT round(SUM(price),2),0)
FROM products, orders
WHERE products.id_products = orders.id_products AND MONTH(orders.date) = 1 AND YEAR(orders.date) = '2019'
GROUP BY products.type

для каждого месяца, но у меня возникает проблема, когда тип продукта не существует в данном месяце.

У кого-нибудь есть решение для создания такого отчета?

1 Ответ

0 голосов
/ 01 марта 2019

Использование условное агрегирование :

SELECT
    p.type_product,
    SUM(CASE WHEN YEAR(o.date) = 2019 AND MONTH(o.date) = 1 THEN o.price ELSE 0 END) January,
    SUM(CASE WHEN YEAR(o.date) = 2019 AND MONTH(o.date) = 2 THEN o.price ELSE 0 END) February
FROM 
    products p
    INNER JOIN orders o ON oid_product. = p.id_product
GROUP BY p.type_product
...