|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.01.2011, 14:37 | #1 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Функция COUNT(*) и вариации на тему.
Здравствуйте, уважаемые программисты)
Не могу решить задачу - подскажите)) Требуется подсчитать количество предметов читаемых на каждом курсе, при этом имеется следующая база данных - Код:
Код:
Код:
видимо, пытаясь получить декартово произведение.... |
25.01.2011, 15:40 | #2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
А что Вы пытаетесь сделать?!!! Вы действительно перемножаете все три таблицы друг с другом! В JOIN обязательно надо указывать условие связи таблиц (ON Таблица1.поле1 = Таблица2.Поле1) - иначе, либо результата вообще не дождётесь, либо получите какое-то астрономическое число, которое ничего не даёт и никому не нужно! p.s. сейчас голова другим занята.. если никто не ответит, попозже постараюсь помочь с Вашим запросом... |
|
25.01.2011, 16:07 | #3 | ||
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
Цитата:
|
||
25.01.2011, 16:37 | #4 |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
Думаю, что как-то так
Код:
|
25.01.2011, 19:16 | #7 |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
Семестр в вашей БД можно как-то привязать к курсу? Если да, то для решения вашей задачи достаточно будет 1 таблицы SUBJECT
|
26.01.2011, 17:01 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
1) я согласен с _Engine_ - если Вам удасться догадаться, как связаны KURS и SEMESTER - то для решения задачи достаточно одной таблицы SUBJECT если же этой связи нет (и выявить её по имеющимся данным невозможно), тогда, имхо, стоит попробовать сделать такое допущение - по всем предметам, которые есть на курсе есть сданные экзамены (т.е. для всех предметов без исключения есть записи в таблице EXAM_MARKS (неважно все ли студенты сдавали, или только один ботаник сдал какой-то один предмет). Главное, что если нет записи в таблице экзаменов, значит нет такого предмета на данном курсе! ну тогда в подзапросе получаем записи из трёх таблиц сгруппировав их по KURS и SUBJ_ID и потом банально в основном запросе считаем количество по каждому курсу select KURS, COUNT(*) from (подзапрос) GROUP BY KURS p.s. а вообще, задача очень плохо формулирована (именно в области описания связей). я бы рекомендовал, если это возможно, уточнить у преподавателя, как связаны курс и учебные дисциплины, читаемые на этом курсе! |
|
26.01.2011, 17:19 | #10 | ||
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
Цитата:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |