Всем, доброго времени.
Впал в ступор и не могу понять как сформировать запрос для отчёта по определённым пользователям и его заказанных продуктов в заявках.
В приложении есть пользователи, которые формируют заявки с продуктами и необходимо отобразить отчёт по сумме заказанных уникальных продуктов продуктов для каждого пользователя отдельно.
Колонки в отчёте:
Название продукта | user_1 | user_2 | user_N | Общее количество.
* user_N может быть N, но я думаю можно ограничить до 100.
Каждая строка это уникальный продукт где для каждого пользователя отображается сумма заказанных им этого продукта.
Перед тем как выполнить запрос я получаю всех возможных пользователей, которые оформляли заявки по заданным временным фильтрам. Список этих пользователей и будет использоваться в отчёте как user_1, user_2, user_N.
Вот запрос, который получает то что мне надо,
НО он не гарантирует, что я в рамках одного запроса получу информацию для всех пользователей, которые были получены выше, чтобы сформировать полноценную строку для отчёта, так как в данном запросе будет пагинация и отчёт генерируется частями:
select op.original_product_id, orders.created_by_user_id, SUM(op.quantity) as quantity
from `orders` inner join order_products op on orders.id = op.order_id
where orders.team_to_id = 1715 -- ещё другие фильтры и ниже пагинация
group by orders.created_by_user_id, op.original_product_id;
* в запросе убраны условия на заявки как и при получени пользователей.
Как можно написать запрос, который будет возвращать гарантированно информацию для указанного списка пользователей с пагинацией?
Буду очень благодарен за наводку на правильные мысли.