|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.12.2009, 13:26 | #1 |
Пользователь
Регистрация: 14.12.2009
Сообщений: 21
|
SQL-запросы
помогите плиз!!! как сделать запрос, у меня есть БД с 3 связанными таблицами: группа=>студент=>оценки за экзамены. нужно чтоб в таблицы группа отражалось сколько человек сдали все экзамены и сколько человек не сдали все экзамены и средний бал???
|
23.12.2009, 15:59 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Вы должны выложить пример БД (или, как минимум) описание связей.
и второе, сколько экзаменов всего? невозможно ответить на вопрос, сколько сдали ВСЕ экзамены, пока не будет известно, как опеределить по оценкам все ли экзамены сдал один конкретно взятый студент. |
24.12.2009, 06:33 | #3 |
Пользователь
Регистрация: 14.12.2009
Сообщений: 21
|
Таблица группа состоит из полей: IDгруппы, Группа, Должны_сдавать, Сдали, Не_сдали, Средний_бал. Таблица студенты: IDстуденты, IDгруппы, ФИО, Дата_рождения, Место_жительство. Таблица оценки: IDоценки, IDстуденты, семестр, дата_сессии, дисциплина, вид_контроля, оценка.
Связи: IDгруппы(таблица Группа)=>IDгруппы(таблица Студенты), IDстуденты(таблица Студенты)=>IDстуденты(таблица Оценки). |
24.12.2009, 07:04 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
уже лучше!
Но. Ответа на ключевой вопрос не прозвучало! или я плохо объясняю, или Вы меня не понимаете... Как (по каким критериям) определить студентов, которые сдали ВСЕ экзамены?!! на примере. группа 1 студент Сидоров. в оценках три записи: Код:
вопрос 2. Он все экзамены сдал?! |
24.12.2009, 08:37 | #5 |
Пользователь
Регистрация: 14.12.2009
Сообщений: 21
|
ну например в сессии было 5 экзаменов мат. анализ, физика, химия, статистика, философия. Если студент сдал все экзамены он заносится в таблицу Группа поле Все экзамены как 1 а если не сдал например физику то он заносится в поле что не сдал как 1, интересуют все студенты группы т.е. вот так должна выглядеть таблица Группы в зимний семестр 2008/2009
l№ группы l Должны l Сдали l Не сдали l Средний балл по l l lсдавать чел.lсессию, чел.lсессию, чел. lрезультатам сессии l lБК-7561 l 13 l 8 l 5 l 3,2 l lБК-6561 l 16 l 14 l 2 l 3,5 l lБК-5561 l 10 l 6 l 4 l 3,5 l |
24.12.2009, 09:15 | #6 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
понимаете, мы с Вами мыслим абсолютно в разных плоскостях...
поясню... Цитата:
я бы рекомендовал завести табличку: Предметы, обязательные для сдачи в семестр там дата семестра + предмет, который должен быть сдан замечание 2. Цитата:
Это, конечно, не очень критично - можно считать, что в таблице Группа всегда хранятся результаты последней сессии! но я бы всё равно рекомендовал завести поле - за какой семетры данные о сдаче экзамена... Хотя, если по хорошему, этим данным вообще не место в таблице Группы!! |
||
24.12.2009, 15:26 | #7 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
у меня получился такой вариант на тех исходных данных, которые указаны (правда, не стал забивать такое кол-во студней и экзаменов с оценками - оставим это на совести ТС)
Код:
Последний раз редактировалось soleil@mmc; 24.12.2009 в 15:28. Причина: добавочка |
24.12.2009, 19:58 | #8 |
Пользователь
Регистрация: 14.12.2009
Сообщений: 21
|
Вобще как бы таблицу Группы можно поменять мне как я понял нужен запрос т.е. когда на кнопку нажимаешь задается введите дату сессии и тогда данные выводятся по группам сдувавшим сессию
|
26.12.2009, 09:59 | #9 |
Пользователь
Регистрация: 14.12.2009
Сообщений: 21
|
А вообще можно как нибудь в дочерней таблицы автоматический просчитать количество записей и чтоб они выводились в родительскую таблицу??? Если можно опишите поподробней пожалуйста
|
26.12.2009, 11:04 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
вообще, лучше такие вещи НЕ ДЕЛАТЬ!
Когда понадобится - всегда запросом можно легко получить количество (да и сами записи, при необходимости) из дочерней таблицы. Ну, если уже делать, тогда "по правильному" такие вещи лучше делать на триггерах, которые вешаются на изменение/удаление/добавление записей в дочерней таблице.... Если же всё таки Вам НАДО это сделать через SQL (ну задание, например, такое учебное, не очень грамотное со стратегической точки зрения...), то это можно сделать примерно так: Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SQL - запросы в Delphi | zetrix | БД в Delphi | 41 | 08.06.2010 14:07 |
SQL запросы | ArcaN0id | Microsoft Office Access | 6 | 13.12.2009 19:42 |
SQL запросы | Best Programmist | Microsoft Office Access | 8 | 03.12.2009 16:42 |
Запросы на SQL | denisk0 | Microsoft Office Access | 0 | 23.05.2009 16:05 |
sql запросы | wolf950 | БД в Delphi | 2 | 28.11.2008 21:26 |