![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.10.2013
Сообщений: 34
|
![]()
Всем доброго времени суток!
Возникла проблема с написанием запроса на выборку из таблиц информации. Вообщем есть 3 таблицы связанные между собой: "Ученик" , "Школа" , "Класс", заполняется всё след образом, сначала добавляется школа, затем в таблице "Класс" добавляется класс для этой школы и в "Ученик" заносятся данные об ученике и классе со школой где он учится. Вообщем делаю запрос на выборку общего кол-ва учеников в классах в каждой школе, а нужно сделать чтобы выбиралось МАКСИМАЛЬНОЕ кол-во учеников в классах в разных школах (Вывести названия классов с максимальным количеством учеников в разных школах) Вот собственно текст запроса: select class_name , school_number , count (student.klass_id) from (student join class on student.klass_id = class.id_klass and student.school_id = class.id_school) join school on class.id_school = school.id_school group by class_name , school_number Результат работы на скрине, помогите сделать так чтобы выбирались только по одному классу со школы, в котором максимальное кол-во учеников в сравнении с другими классами в этой школе |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
![]()
Попробуйте использовать функцию MAX()
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 28.10.2013
Сообщений: 34
|
![]() |
![]() |
![]() |
![]() |
#4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]() Код:
Тестировал на схеме: школа - ид школы, название школы класс - ид класса, ид школы, название класса ученик - ид ученика, ид класса, имя ученика Может быть, можно сделать без подзапросов (у меня маленький опыт в составлении запросов).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 28.10.2013
Сообщений: 34
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]()
TOP 1 вернет только первую строку из набора, а TOP 1 WITH TIES все первые строки, которые совпадают по параметру ORDER BY, наверное. Подробнее - http://msdn.microsoft.com/ru-ru/library/ms189463.aspx.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 28.10.2013
Сообщений: 34
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 28.10.2013
Сообщений: 34
|
![]()
Аватар, я даже не знаю как тебя благодарить, ты просто МЕГА КРУТОЙ ЧЕЛОВЕК!!!! СПАСИБО ТЕБЕ ОГРОМНОЕ
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите в написании | SrGars | Помощь студентам | 7 | 19.10.2013 15:32 |
моя последняя надежда в написании запроса | hend230 | SQL, базы данных | 0 | 17.12.2012 08:34 |
Помогите в написании кода... | sobol556 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 23.03.2009 19:49 |
Помогите в написании пожалуйста: | SViRT | Паскаль, Turbo Pascal, PascalABC.NET | 15 | 07.10.2008 21:57 |