Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помощь с тестовым заданием  [new]
SarkazmMan
Member

Откуда:
Сообщений: 3
Доброго времени суток. Получил следующее задание:
Реализовать и заполнить несколькими записями следующую БД:
Таблица 1. Сотрудники (ИД Сотрудника, ИД Отдела, ФИО)
Таблица 2. Отделы (ИД Отдела, Название, ФИО начальника, ИД отдела вышестоящего уровня)

Запросы:
1. Вывести список отделов с количеством сотрудников больше 5, с указанием названия отдела, ФИО начальника отдела и количество сотрудников
2. Вывести список отделов, в котором указать название подчиненного отдела, название отдела верхнего уровня (которому подчиняется), ФИО начальника отдела верхнего уровня
3. Вывести список отделов, в котором указать название отдела и количество подчиненных отделов.

С таблицами проблем не возникло. С запросами немного сложнее. Первый пытался реализовать так:
SELECT Отделы.ФИО_Начальника,
	   COUNT(Сотрудники.ИД_Сотрудника) AS [Количество сотрудников] 
FROM Отделы INNER JOIN Сотрудники ON Отделы.ИД_отдела = Сотрудники.ИД_отдела
GROUP BY Отделы.ФИО_Начальника
HAVING COUNT(Сотрудники.ИД_Сотрудника) > 5


Вывод правильный, только отсутствует название отдела. Помогите с реализацией всех трех запросов (сдается мне, что в третьем нужно заводить переменную, или я ошибаюсь?).
26 янв 14, 14:08    [15470612]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с тестовым заданием  [new]
Glory
Member

Откуда:
Сообщений: 104751
SarkazmMan
Вывод правильный, только отсутствует название отдела.

Ну так вы нигде не указали поле "название отдела"

SarkazmMan
Помогите с реализацией всех трех запросов (сдается мне, что в третьем нужно заводить переменную, или я ошибаюсь?).

3ий запрос - это 1ый без HAVING
26 янв 14, 14:55    [15470738]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с тестовым заданием  [new]
SarkazmMan
Member

Откуда:
Сообщений: 3
Glory, при добавлении
SELECT Отделы.Название,...

появляется ошибка:
"Column 'Отделы.Название' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause."
.
А в третьем нужно вывести же количество подчиненных отделов, а в этом запросе количество сотрудников.
26 янв 14, 14:59    [15470747]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с тестовым заданием  [new]
Glory
Member

Откуда:
Сообщений: 104751
SarkazmMan
Glory, при добавлении
SELECT Отделы.Название,...


появляется ошибка:
"Column 'Отделы.Название' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause."

Так что мешает выполнить требования, указанные в сообщении ?

SarkazmMan
А в третьем нужно вывести же количество подчиненных отделов, а в этом запросе количество сотрудников.

да. Это будет рекурсивный запрос тогда.
26 янв 14, 15:01    [15470752]     Ответить | Цитировать Сообщить модератору
 Re: Помощь с тестовым заданием  [new]
SarkazmMan
Member

Откуда:
Сообщений: 3
Glory, с первым справился, спасибо) Надо просто логи внимательно читать. В третьем все-таки не могу понять, откуда взять количество подчиненных отделов?..
26 янв 14, 15:06    [15470763]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить