Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/68: Рейтинг темы: голосов - 68, средняя оценка - 4.71
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100

Простой sql запрос(База данных кинотеатров)

30.05.2012, 17:49. Показов 13993. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста составить запрос!) Сделал простенькую базу данных кинотеатров, состоящую из 4 таблиц:
1. Кинотеатры
2. Работники
3. Залы
4. Сеансы(фильмы)

Мне необходимо сделать следующее:" В каких кинотеатрах, на самый дешевый сеанс было продано самое большое кол-во билетов"

Хотя бы с чего начать, что делать? Делать функцию, запрос?
Миниатюры
Простой sql запрос(База данных кинотеатров)  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2012, 17:49
Ответы с готовыми решениями:

База данных, основанная на службах vs База данных SQL Server
Доброго времени суток. Делал я, значит, Data Access Layer для ASP.NET MVC проекта. Создал обычную библиотеку классов, моделей туда...

Простой SQL запрос
Доброго времени суток, я только начал изучение баз данных в Delphi и столкнулся с первой проблемой.С помошью компонентов...

Простой SQL запрос
Помогите пожалуйста составить несколько запросов... Вот таблицы и поля в них которые у меня даны: 1.Культуры (Код культуры, название...

19
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
30.05.2012, 20:00
А где свои попытки написать код? Я, например, принципиально не помогаю тем кто хочет чтобы за него все решили!!!
P.S. Запрос не сложный!
2
20 / 3 / 0
Регистрация: 12.05.2011
Сообщений: 45
31.05.2012, 00:17
Ну, насколько я вижу, для новичка - не самы простой запрос: тут есть, кроме основного, еще и подзапрос)). Я поддерживаю позицию katov-а, поэтому код писать не буду, но подскажу.
Для начала разобъем задачу. Надо найти:
1. Сеанс(ы), на которых самые дешевые билеты;
2. Из этих сеансов выбрать те, где продано наибольшее число билетов;
3. Узнать, названия кинотеатров, в которых проходили эти сеансы.

Нужно вспомнить: агрегатные функции, подзапросы.

Еще подсказка: можно делать так:
SQL
1
2
3
4
5
...
  FROM(
       SELECT MIN()...
      )  AS t1
...
Попробуйте самостоятельно подумать, скинуть на форум какой-то код - подкорректируем
0
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100
31.05.2012, 16:15  [ТС]
Отлично)) Давайте будем учиться)
Вот первые признаки жизни: из таблицы "Сеансы" для каждого кинотеатра нашел самые дешевые сеансы:
Миниатюры
Простой sql запрос(База данных кинотеатров)  
0
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100
31.05.2012, 16:16  [ТС]
Дальше выбрал наибольшее число билетов:
Миниатюры
Простой sql запрос(База данных кинотеатров)  
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
31.05.2012, 18:04
И что не так? Я прикинул варианты и пожалуй это самое правдоподобное решение!

Добавлено через 9 минут
и не нравится мне схема данных!

Добавлено через 12 минут
В Halls нету ключевого поля
Для Halls и Cinema нет связи, а должна бы быть!!!
Название кинотетар в качестве первичного ключа мне не нравится вообще.. Уникальность лучше обеспечит составной ключ Название + Адрес. А еще лучше ввести поле id (при этом в каждой таблице, хотя может проект учебный и тогда вам за это влетит)) )
Workers.. ну тут все ок.
Session - Название фильма очень неудачный первичный ключ (а вдруг выйдет фильм с таким же нзванием?)
Код сеанса подозреваю может обеспечить уникальность, но утверждать не могу
0
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100
31.05.2012, 18:14  [ТС]
Да я думаю тоже переделать таблицу....слушай а вот если в таблице есть связь многие-ко многим....то как ее представлять? вот например у меня есть кинотеатры и фильмы....в одном кинотеатре может показываться несколько фильмов, и фильм может показываться в одном кинотеатре?
я так прикинул таблица совсем неудачная
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
31.05.2012, 18:29
многие-ко-многим развязывают еще одной таблицей
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
31.05.2012, 19:12
И забудь про то, что ключевое поле может быть текстового типа
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
31.05.2012, 20:15
Цитата Сообщение от Ice_and_Fire Посмотреть сообщение
И забудь про то, что ключевое поле может быть текстового типа
Полностью согласен, тока если человек учится, то дядек с забитой теорией башкой не переспоришь (пробовал))) )

Цитата Сообщение от pincet Посмотреть сообщение
многие-ко-многим развязывают еще одной таблицей
Дело pincet говорит! связь "многие ко многим" между таблицами "Кинотеатры" и "Фильмы" можно сделать через развязочную таблицу "Фильмы в кинотеатрах". Связь между кинотеатром и залой можно сделать с помощью ссылки на кинотеатр в таблице "Залы".

Переделаете схему сразу выкладывайте -народ здесь на советы не жмется!))
0
31.05.2012, 20:38

Не по теме:


Цитата Сообщение от _katon_ Посмотреть сообщение
Переделаете схему сразу выкладывайте -народ здесь на советы не жмется!))
Это да, только в более другую эху нужно переходить.

0
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100
31.05.2012, 20:51  [ТС]
Так, ну вот исправленная версия....я убрал работники потому что они для запроса фактически не нужны, добавлю позже для более полной картины....

Теперь что думаете о базе и о запросе?
Миниатюры
Простой sql запрос(База данных кинотеатров)  
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
31.05.2012, 21:06
Не-а, не взлетит. Потерял сеансы. На разные сеансы на один и тот же фильм в одном кинотеатре в одном прокате - разные цены. Или нет?
PS. Вообще - предметную область опиши красиво - полдела сделаешь сразу.
0
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100
31.05.2012, 21:23  [ТС]
Как тогда поступить? еще одну таблицу добавить?"Сеансы"? Тогда что там должно быть? и с чем ее связывать?
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
31.05.2012, 21:32
Балин. Опиши предметную область. Пойми - какие сущности нужно выделить, как они связаны, попытайся провести нормализацию. Задавай вопросы. Но вот только не в здесь, а в родительской ветке ("Базы данных"). Потом искать легче.
2Модеатор - перенесите тему.
0
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100
31.05.2012, 22:03  [ТС]
блин че т все стало еще запутаннее(

Добавлено через 27 минут
У меня еще один вопрос, вот по первоначальной базе, как к имеющейся выборке добавить еще залы с количеством мест <10...Пытаюсь добавить:

Where Halls.[Кол-во мест] < 10

Но пишет : Столбец "Halls.Кол-во мест" недопустим в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении GROUP BY.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
31.05.2012, 22:07
Для примера. Есть ряд кинотеатров и список фильмов. В прокате каждого кинотеатра может быть несколько фильмов. Каждый фильм может быть в прокате любого кинотеатра. Налицо - "многие-ко-многим". Развязываем сущностью "Прокат". Каждый "Прокат" имеет не менее одного сеанса. Каждый сеанс определенного кинотеатра демонстрирует только один фильм.
PS Атрибутами сущности пробуй наделить сам. Спрашивай.
ЗЫ В этой эхе больше не отвечаю
Изображения
 
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
31.05.2012, 22:14
Цитата Сообщение от Barmaglo Посмотреть сообщение
Where Halls.[Кол-во мест] < 10
Курим HAVING
0
7 / 15 / 0
Регистрация: 08.03.2011
Сообщений: 100
01.06.2012, 20:31  [ТС]
Как необходимо дополнить следующий запрос, чтобы получить из этих двук строк одну НО должно быть:

-Цена билета минимальна(т.е 39)
-Кол-во проданных билетов максимально(т.е 234455656)
-Число мест в зале должно удовлетворять условию: меньше 20
Миниатюры
Простой sql запрос(База данных кинотеатров)  
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
04.06.2012, 12:24
Для цены билета использовать функцию MIN(). Для количества проданных билетов функцию MAX(). Число мест нужно отфильтровать во фразе WHERE.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.06.2012, 12:24
Помогаю со студенческими работами здесь

Простой запрос SQL
Помогите составить запрос в Database Desktop. Запрос такой: с помощью оператора SELECT вывести названия всех блюд, при приготовлении...

Простой SQL запрос
Подскажите пожалуйста как реализовать запрос: необходимо найти &quot;Название автопарка, который обслуживает максимальное количество...

посмотриет sql-запрос(простой)
Добрый день,такая ситуация у нас появился предмет БД и СУБД!Вот помогите с sql запросам как сделать так чтобы выводило лишь студентов у...

Простой SQL запрос получения количества по определённой дате
Мне нужно определить количество сделок за последний календарный месяц Получилось получить просто даты select dbo.Deal.Date from...

Как выполнить простой SELECT запрос с помощью Linq to SQL?
class Program { static SqlConnection conn; static void Main(string args) { try ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru