Задать вопрос
@Ivan_R2

Как объединить два запроса в одну группировку по условию в SQL?

Здравствуйте!
Подскажите, пожалуйста, как это можно сделать:
Есть запрос
SELECT Count(sales.id),  sale_group.code AS group
        FROM sales
        INNER JOIN sale_group
                    ON sales.group_id = sale_group.id
        GROUP BY sale_group.code
, который подсчитывает количество заказов для каждой группы. Каким образом можно сделать так, чтобы в результате выводились еще и группы, для которых нет заказов?

UPD:

Лентюй, cпасибо большое за ответ и за инфографику. Только у меня там еще условие было для фильтрации заказов, не думал, что оно повлияет на результат, не написал его, ошибся. Вместе с ним не работает.
Полный запрос выглядит так:
SELECT Count(sales.id), sale_group.code AS group
FROM sales
INNER JOIN sale_group
ON sales.group_id = sale_group.id
WHERE sales.path
LIKE '43/44/45/%' AND sales.id != 45
GROUP BY sale_group.code


После вашего ответа попробовал сделать таким образом:

SELECT Count(id FROM sales WHERE path
LIKE '43/44/45/%' AND id != 45), sale_group.code AS group
FROM sales
RIGHT JOIN sale_group
ON sales.group_id = sale_group.id
GROUP BY sale_group.code


Но считает неправильно. Прошу прощения, что сразу написал не всю информацию, это по незнанию. Подскажите, пожалуйста, как сделать теперь правильно?
  • Вопрос задан
  • 376 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@MaLuTkA_UA
SELECT Count(s.id), sg.code AS group
FROM sale_group sg
LEFT JOIN sales s ON s.group_id = sg.id AND s.path LIKE '43/44/45/%' AND s.id <> 45
GROUP BY sg.code
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы