надо вывести список заказов на каждом сотруднике SQL

Рейтинг: 0Ответов: 1Опубликовано: 29.05.2023

Есть две таблицы:
1)Сотрудники: КодСотрудника, ФИОсотрудника, ПочтаСотрудника.
2)Заказы: КодЗаказа,Дата заказа, КодСотрудника( курирующий этот заказ)
Необходимо вывести таблицу: КодСотрудника, ФИОсотрудника, количество заказов(которое он курирует), список заказов (через запятую).
я понимаю как это все вывести отдельно, но никак не могу сделать за один запрос, Помогите пожалуйста

Ответы

▲ 2

По идее этот запрос должен вывести нужную таблицу, если я нигде не накосячил:

SELECT
    E.КодСотрудника,
    E.ФИОсотрудника,
    COUNT(O.КодЗаказа) AS Количество_заказов,
    GROUP_CONCAT(O.КодЗаказа ORDER BY O.КодЗаказа SEPARATOR ', ') AS Список_заказов
FROM
    Сотрудники AS E
    LEFT JOIN Заказы AS O ON E.КодСотрудника = O.КодСотрудника
GROUP BY
    E.КодСотрудника, E.ФИОсотрудника;

Если кратко, то тот запрос объединяет таблицы Сотрудники и Заказы по полю КодСотрудника с помощью JOIN. Затем с помощью COUNT подсчитывается количество заказов для каждого сотрудника. GROUP_CONCAT используется для составления списка заказов через запятую. Результат группируется по коду сотрудника и ФИО сотрудника.