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

Откуда:
Сообщений: 2
Есть три таблицы: преподаватели(id , surname), предметы(id, name), дополнительная таблица, которая показывает связь многие ко многим, т.е. у одного преподавателя может быть несколько предметов, а один предмет могут вести несколько преподавателей. В этой таблице два ключевых поля( teacher_id, subj_id)
Нужно написать запрос, который выведет преподавателей, у которых максимальное кол-во предметов.
Вывод: фамилия, макс кол-во.
Помогите, голову ломаю, не получается. Картинка с другого сайта.
14 янв 13, 19:24    [13769009]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!) Срочно!!!  [new]
pit_alex
Member

Откуда: Kharkov
Сообщений: 686
kupasya,

читать
14 янв 13, 19:31    [13769039]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!) Срочно!!!  [new]
nerv
Member

Откуда:
Сообщений: 734
kupasya,
если не важно каким именно предметов, а только максимальное кол-во предметов, то вам достаточно анализировать только teacher_has_sub. А имя препода брать естественно из teachers
14 янв 13, 19:34    [13769053]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!) Срочно!!!  [new]
nerv
Member

Откуда:
Сообщений: 734
select t.name_t, t.surname, count (s.subject_id)
from teachers_has_sub s, teachers t
where t.id = s.teachers_id
14 янв 13, 19:37    [13769071]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!) Срочно!!!  [new]
DmitryZ78
Member

Откуда: Каменск-Уральский
Сообщений: 84
kupasya,

Сессия однако)))
select t.name_t, count(*)
  from teachers_has_subject ts
    join teachers t on ts.teachers_id = t.id
  group by t.name_t
  having count(*) = ( select top 1 count(*) as max_count
                        from teachers_has_subject
                        group by subject_id
                        order by 1 desc )
14 янв 13, 19:38    [13769074]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!) Срочно!!!  [new]
kupasya
Member

Откуда:
Сообщений: 2
nerv, понял
Вот,что у меня есть:
SELECT s.teacher, s.count_sub
FROM (
SELECT TEACHERS_id AS teacher, count(SUBJECT_id) AS count_sub
FROM teachers_has_sub
GROUP BY TEACHERS_id
) AS s
INNER JOIN teachers t ON t.id = s.teacher
ORDER BY s.count_sub DESC

тут выводятся все преподы, т.е. их id ,а напротив кол-во предметов, сортируются, а мне надо только тех, у кого максимум, с учетом того,что максимальное кол-во предметов может быть у нескольких преподов
14 янв 13, 19:48    [13769108]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом!) Срочно!!!  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3650
pit_alex
kupasya,

читать


и тут еще
14 янв 13, 19:57    [13769132]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить