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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2011, 19:57   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
получается что нельзя никак сгруппировать семестры по два в одном курсе,да?
можно!

пример тестовой базы есть?
или хотя бы в виде текста дайте пример данных,
которые содержатся в Ваших таблицах...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.01.2011, 20:36   #12
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

файл там здоровый - 4.5 мегабайта) какие именоо данные нужны ?
по предметам что-то вроде того -
Код:
values (1, 'Биология', 119, 1);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (2, 'Химия', 65, 4);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (3, 'Сочинение', 95, 2);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (4, 'География', 74, 2);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (5, 'Собеседование', 102, 4);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (6, 'Изложение', 107, 4);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (7, 'Физика', 69, 1);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (8, 'История России', 73, 3);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (9, 'Литература', 104, 3);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (10, 'Иностранный язык', 67, 4);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (11, 'Математика', 124, 2);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (12, 'Математика', 86, 1);
insert into SUBJECT (SUBJ_ID, SUBJ_NAME, HOUR, SEMESTER)
values (13, 'Обществознание', 79, 2);
вот, собственно, и все предметы - всего 4 семестра)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 26.01.2011, 23:13   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
вот, собственно, и все предметы - всего 4 семестра)
и что же получается - тогда у студетентов всего два курса обучения (ну если два семестра на один курс)?!!

Да и тогда таблицы студентов и экзаменов лишними оказываются.. Это, конечно, не показатель, но всё же...
Попробуйте всё же вариант, описанный мной выше (связать курс с предметами через экзамены), мне кажется, что это решение, если не 100% правильное, то, по крайней мере, похоже на правильное!

Уточнить не у кого?...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.01.2011, 17:22   #14
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Serge_, я спросил у препода по почте)) - вообще это вопрос к экзамену) - он сказал что можно использовать
Цитата:
> 1) использовать UNION, самый простой, но самый объемный
> 2) использовать JOIN, вполне может потребоваться соединить несколько таблиц, как минимум 3
с UNION -то всё понятно - просто запросы для каждого курса отдельно.
Теперь я спросил его про допущение по экзаменам)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 28.01.2011, 10:00   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

vedro-compota, как-то наше обсуждение плавно зависло...
т.е. вроде как мне надо бы что-то написать, но мне нечего добавить...

Цитата:
> 1) использовать UNION, самый простой, но самый объемный
> 2) использовать JOIN, вполне может потребоваться соединить несколько таблиц, как минимум 3
при чём здесь UNION - я вообще даже предположить не могу (это применяется для решения совсем других задачи)
а про JOIN - ну понятно, что если соединять таблицы, то может потребоваться JOIN.

Вопрос же был в другом - не КАК сделать, а как ЛОГИЧЕСКИ решить задачу.
поясню.
допустим у нас есть предметы

'Биология' семестр 1
'Химия' семестр 4
'Сочинение' семестр 2

студенты:
Иванов курс 1
Сидоров курс 1
Петров курс 2
Балаганов курс 2
Бендер курс 3

ну, и таблица с оценками по экзаменам.

вопрос. Сколько предметов читается на каждом курсе?

Т.е. мы забыли про SQL, про UNION про JOIN и т.п. технику.
Просто посчитайте и сообщите ответ.
Не можете? Тогда и составить запрос, чтобы он сумел это сделать - не получится! Ибо компьютер(программа) делает ровно то, что его просят и ничего сверх того!

хау.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.01.2011, 17:14   #16
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
вроде как мне надо бы что-то написать,
Serge, это я просто медленно соображаю))
С JOIN -ом запрос , получается, должен выглядеть как-то так:

Код:
SELECT KURS,COUNT(*) FROM(SELECT * FROM STUDENT LEFT JOIN EXAM_MARKS ON STUDENT.STUDENT_ID=EXAM_MARKS.STUDENT_ID  LEFT JOIN
SUBJECT ON EXAM_MARKS.SUBJ_ID=SUBJECT.SUBJ_ID ) AS MYTABLE GROUP BY KURS;
но тут лезет ошибка -
Цитата:
#1060 - Duplicate column name 'STUDENT_ID'
сейчас попытаюсь понять как от неё избавиться)
=================================== ======
Serge, вы говорили .что -
Цитата:
в подзапросе получаем записи из трёх таблиц сгруппировав их по KURS и SUBJ_ID
но , насколько я понимаю группировать по KURSу в подзапросе нельзя - ведь по нему мы группируем в запросе....
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 28.01.2011 в 17:19.
vedro-compota вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL Count() novice2010 Помощь студентам 1 23.09.2010 07:30
Count. Firebird artemavd БД в Delphi 21 12.09.2010 12:00
count(*) as dedyshka PHP 8 28.12.2009 15:53
count(*) antoniosm БД в Delphi 9 12.09.2007 13:06
функция запроса COUNT Таня84 БД в Delphi 1 10.06.2007 15:49