Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2012, 22:08   #1
Самоучка
Пользователь
 
Аватар для Самоучка
 
Регистрация: 09.10.2008
Сообщений: 41
По умолчанию Создать запрос

1) вывести сведения о всех соревнованиях, в которых принимал участие Иванов Иван Иванович Таблица Личность и Таблица Соревнование Access;
2) подсчитать сколько разных травм получил каждый спортсмен Таблица Личность и Таблица Травмы

помогите разобраться с запросами заранее благодарен
Писать на стенах туалета, увы, мой друг не мудрено.....
Среди говна - мы все поэты. Среди поэтов - мы говно!
Самоучка вне форума Ответить с цитированием
Старый 08.02.2012, 00:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

описания таблиц и взаимосвязей не наблюдается...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.02.2012, 08:42   #3
Самоучка
Пользователь
 
Аватар для Самоучка
 
Регистрация: 09.10.2008
Сообщений: 41
По умолчанию

Таблица Личность (Табельный номер (ключ), Фамилия, Имя, Отчество, Дата рождения)
Таблица Соревнование (Код соревнования (ключ), Название, Дата начала, Дата окончания, Место проведения)
Таблица Болезнь (Травмы) (Шифр болезни (ключ), название)
Писать на стенах туалета, увы, мой друг не мудрено.....
Среди говна - мы все поэты. Среди поэтов - мы говно!
Самоучка вне форума Ответить с цитированием
Старый 08.02.2012, 09:26   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Желаемые запросы сформировать по приведенным структурам таблиц невозможно, т.к. между таблицами отсутствуют логические связи.
Связь между тт. Личность и Соревнование может быть "многие ко многим". Здесь Личность может участвовать в разных Соревнованиях, а в Соревновании участвуют как правило больше одной Личности.
Поэтому должна быть еще одна таблица (Личность-Соревнование), где указываются какие личности и в каких соревнованиях участвовали.
Структура Личность_Соревнование (Код (ключ), ТабНомер, Код_соревнования).

По второму запросу та же история: нет логической связи вида "один ко многим".
Т.е. в табл. Болезнь должна быть ссылка на табельный номер в табл. Личность.

Последний раз редактировалось Прик; 08.02.2012 в 09:29.
Прик вне форума Ответить с цитированием
Старый 08.02.2012, 09:28   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Структура данных такова, что получить запрашиваемую информацию нельзя - не предусмотрены отношения связи между таблицами. Вижу еще две дополнительные таблицы - первая связывающая таблицы Личность и Соревнование, вторая - Личность и Болезнь
Цитата:
По второму запросу та же история: нет логической связи вида "один ко многим".
Там тоже напрашивается многие к многим
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.02.2012, 09:35   #6
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Аватар, мы с вами ну как Попов с Маркони - синхронно
Цитата:
Там тоже напрашивается многие к многим
Согласен. Правда, сначала подумалось, что вероятность получения двух и более видов травм одновременно слишком мала. Но, если есть любая вероятность, то предусматривать ее, конечно, надо.
Прик вне форума Ответить с цитированием
Старый 08.02.2012, 14:55   #7
Самоучка
Пользователь
 
Аватар для Самоучка
 
Регистрация: 09.10.2008
Сообщений: 41
По умолчанию

а как будет выглядеть запрос при связи многие ко многим
Писать на стенах туалета, увы, мой друг не мудрено.....
Среди говна - мы все поэты. Среди поэтов - мы говно!
Самоучка вне форума Ответить с цитированием
Старый 08.02.2012, 15:45   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

примерно так (таблицу связи я назвал УчастникиСоревнований):
Код:
select * from Соревнование
  where  Код_соревнования  in 
    (select Код_соревнования from Личность, УчастникиСоревнований
       where Личность.Табельный_Номер = УчастникиСоревнований.КодЛичности
       and Личность.Фамилия = 'Иванов'
       and Личность.Имя = 'Иван'
       and Личность.Отчество = 'Иванович' )
p.s. учтите, что если в таблице Личность будут ПОЛНЫЕ тёзки (т.е. совпадают и имя, и фамилия, и отчество) - то будут показана информация обо всех соревнованиях, где любой из Ивановых И.И. принимал участием!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.02.2012, 15:54   #9
Самоучка
Пользователь
 
Аватар для Самоучка
 
Регистрация: 09.10.2008
Сообщений: 41
По умолчанию

Большое Человеческое СПАСИБО
Писать на стенах туалета, увы, мой друг не мудрено.....
Среди говна - мы все поэты. Среди поэтов - мы говно!
Самоучка вне форума Ответить с цитированием
Старый 08.02.2012, 16:14   #10
Самоучка
Пользователь
 
Аватар для Самоучка
 
Регистрация: 09.10.2008
Сообщений: 41
По умолчанию

а со вторым можете помочь?
Писать на стенах туалета, увы, мой друг не мудрено.....
Среди говна - мы все поэты. Среди поэтов - мы говно!
Самоучка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу создать запрос yuliaNa03 Microsoft Office Access 3 22.11.2011 11:45
Создать запрос KaDetka Microsoft Office Access 3 09.06.2011 13:48
MySQL запрос создать 5.1 iankov SQL, базы данных 2 23.07.2009 20:06
Создать запрос mysql iankov SQL, базы данных 4 17.01.2009 15:36
Создать веб запрос Shavminator Microsoft Office Excel 7 26.09.2008 16:33