Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачи по SQL

Zi Мастер (1841), на голосовании 3 месяца назад
Ребята, мне нужно срочно выполнить задание одно по SQL, но я не могу правильно подобрать операции. Помогите пожалуйста, за мной не заржавеет. Потом помогу материально за правильный ответ.

Написать запрос для вывода:

1. названия департамента, в котором есть пользователь с UserID = 15

2. списка департаментов (названия), в которых есть хотя бы один человек, без повторений

3. количества сотрудников в каждом департаменте

4. списка департаментов, в которых ровно три сотрудника

5. списка департаментов, в которых нет сотрудников
Голосование за лучший ответ
Мыслитель (5117) 4 месяца назад
1. Название департамента, в котором есть пользователь с UserID = 15:
 SELECT DepName 
FROM Dep, [User]
WHERE Dep.DepID = [User].DepID AND UserID = 15;
2. Список департаментов (названия), в которых есть хотя бы один человек, без повторений:
 SELECT DepName 
FROM Dep d
WHERE EXISTS (SELECT 1 FROM [User] u WHERE u.DepID = d.DepID);
3. Количество сотрудников в каждом департаменте:
 SELECT COUNT(u.UserID) AS 'Кол-во сотрудников', d.DepName 
FROM Dep d LEFT JOIN [User] u ON d.DepID = u.DepID
GROUP BY d.DepName;
4. Список департаментов, в которых ровно три сотрудника:
 SELECT d.DepName 
FROM Dep d LEFT JOIN [User] u ON d.DepID = u.DepID
GROUP BY d.DepName
HAVING COUNT(UserID) = 3;
5. Список департаментов, в которых нет сотрудников:
 SELECT d.DepName 
FROM Dep d LEFT JOIN [User] u ON d.DepID = u.DepID
GROUP BY d.DepName
HAVING COUNT(UserID) = 0;
Похожие вопросы