@siarheipashkevich
developer

Как сформировать запрос с обязательным количеством пользователей для отчёта и пагинацией?

Всем, доброго времени.

Впал в ступор и не могу понять как сформировать запрос для отчёта по определённым пользователям и его заказанных продуктов в заявках.

В приложении есть пользователи, которые формируют заявки с продуктами и необходимо отобразить отчёт по сумме заказанных уникальных продуктов продуктов для каждого пользователя отдельно.

Колонки в отчёте:
Название продукта | 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;

* в запросе убраны условия на заявки как и при получени пользователей.

Как можно написать запрос, который будет возвращать гарантированно информацию для указанного списка пользователей с пагинацией?

Буду очень благодарен за наводку на правильные мысли.
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы