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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2012, 00:10   #1
Meri12
 
Регистрация: 21.09.2011
Сообщений: 6
По умолчанию Количество записей в таблице

Здравствуйте. У меня очень интересная проблема, по крайней мере, для меня.
имеются три таблицы: препод, ученики, дисциплины
внешний ключ таблицы препод ссылается на таблицу дисциплины. Внешний ключ таблицы ученики ссылается на препод.
Как посчитать количество учеников, у которых преподаватель ведет конкретную дисциплину, причем несколько преподов могут вести одну и ту же дисциплину. я сделала следующее
AS
DECLARE VARIABLE x INTEGER;

begin

SELECT COUNT(*) FROM ycheni WHERE ycheni.nom_prepod=(select nom_prepod from prepod where prepod.nomspec=
(select nomspec from specia where specia.nomspec=old.nomspec) ) INTO X ;
все работает, но если я добавлю, что несколько преподов ведут одну дисциплину, то вылазиет ошибка с multi rows/
Подскажите что делать.
Meri12 вне форума Ответить с цитированием
Старый 03.05.2012, 00:58   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а я сейчас пытаюсь понять, а какое количество Вы пытаетесь получить

допустим
таблица ycheni
stud1 Id_prepod1
stud2 Id_prepod1
stud3 Id_prepod2
stud4 Id_prepod2
stud5 Id_prepod3
stud6 Id_prepod4

таблица prepod
Id_prepod1 Дисциплина1
Id_prepod2 Дисциплина1
Id_prepod3 Дисциплина2
Id_prepod4 Дисциплина2

таблицу дисциплины для простоты опустим.

Какое количество учеников, у которых преподаватель ведет конкретную дисциплину Вы хотите получить?

сколько всего учеников изучают Дисциплину1 ?

правильный ответ: 4?

Тогда это вернёт такой запрос:
Код:
SELECT COUNT(*) FROM ycheni 
WHERE ycheni.nom_prepod in 
(select nom_prepod from prepod
    where prepod.nomspec=old.nomspec) INTO X
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество записей в таблице Марк Охман БД в Delphi 2 27.09.2010 14:07
Как посчитать количество записей в таблице DBGrid Епгений БД в Delphi 12 09.05.2010 16:26
Фильтрация записей в таблице TaTT DoGG БД в Delphi 49 28.03.2009 19:04
Счетчик записей в таблице John_chek Общие вопросы Delphi 2 01.03.2007 11:36