Напишите SQL-запрос для списка всех сотрудников из отдела бухгалтерии с ФИО, используя JOIN двух таблиц сотрудники и подразделения
Что проверяют
Базовый SQL у тестировщика: соединение двух таблиц, фильтр по справочнику, склейка полей в одну строку. Не менее важно, задаёте ли вы вопросы про данные или пишете запрос вслепую по названиям из условия.
Как отвечать
Сначала уточните структуру: есть ли отчество, хранится ли отдел ссылкой на справочник, нужны ли уволенные. Потом запрос:
SELECT concat_ws(' ', e.last_name, e.first_name, e.middle_name) AS fio
FROM employees e
JOIN departments d ON d.id = e.department_id
WHERE d.name = 'Бухгалтерия'
ORDER BY fio;CONCAT_WS есть и в PostgreSQL, и в MySQL, и он сам пропускает NULL. Оператор || работает в PostgreSQL и Oracle, но в MySQL по умолчанию это логическое «или», и запрос вернёт не то. Добавьте, зачем вам INNER JOIN: он отсекает сотрудников без подразделения, а если задача проверить данные, полезнее LEFT JOIN, который как раз покажет сирот. И скажите, что фильтровать надёжнее по d.id, а название отдела брать из справочника.
Где спотыкаются
Склеивают ФИО через || без защиты от NULL. Пустое отчество обнуляет всю строку целиком, и сотрудник уходит из отчёта с пустым полем вместо фамилии. Ловится это только тестом на данных, где отчества нет.
Завязываются на точное совпадение названия отдела. Регистр, лишний пробел в конце, вариант «Бухгалтерия и финансы» дают нулевой результат при формально верном запросе. Тестировщик должен назвать это как отдельный риск.
Не проверяют результат. Запрос вернул строки, значит всё хорошо. Ждут другого: сверить количество с отдельным count по отделу, поискать дубли, если сотрудник числится в двух подразделениях, и убедиться, что пустая выдача означает пустой отдел, а не опечатку в условии.