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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2011, 23:51   #1
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию Запрос на количество

В базе данных две таблицы: студенты и комнаты в общежитии.
Таблица Студенты (Код_студента, фамилия, имя, отчество, код_комнаты)
Таблица Комнаты (Код_комнаты, Название, койко-мест).
Связь между таблицами один-ко-многим.
Хочу вывести количество студентов, проживающих в определенной комнате (ну например комната 202). Вот код.
Код:
procedure TfrmPoisk.Button1Click(Sender: TObject);
var
a: string;
m: integer;
begin
DataModule4.ADOQueryPoisk.Active:=false;
DataModule4.ADOQueryPoisk.SQL.text:='SELECT Count(Студенты.Фамилия) AS [Count-Фамилия], Комнаты.Комната FROM Комнаты INNER JOIN Студенты ON Комнаты.Код_комнаты = Студенты.Код_комнаты GROUP BY Комнаты.Комната HAVING (((Комнаты.Комната)='+'"'+Edit2.Text+'"'+'))';
DataModule4.ADOQueryPoisk.Active:=true;
DataModule4.ADOQueryPoisk.Open;
DataModule4.ADOQueryPoisk.SQL.text:=IntToStr(m);
label2.Caption:='Количество студентов проживающих в комнате'+edit2.Text+'равно'+IntToStr(m);
end;
Что-то пока не получается. Направьте на "путь истинный"
StudentMarat вне форума Ответить с цитированием
Старый 09.12.2011, 23:58   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
SELECT Count(*) AS [Count-Фамилия],Комнаты.Комната 
  FROM Комнаты,Студенты
  WHERE Комнаты.Код_комнаты = Студенты.Код_комнаты AND Комнаты.Комната='112'
  GROUP BY Комнаты.Комната
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.12.2011, 00:04   #3
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Так номер комнаты должен вводиться пользователем в edit а результат выводиться в label
StudentMarat вне форума Ответить с цитированием
Старый 10.12.2011, 00:05   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

дык подставь в запрос, или это тоже описывать?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.12.2011, 00:24   #5
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Попробовал. Но не получается. Где здесь ошибка??
Код:
Код:
procedure TfrmPoisk.Button1Click(Sender: TObject);
var
a: string;
m: integer;
begin
DataModule4.ADOQueryPoisk.Active:=false;
DataModule4.ADOQueryPoisk.SQL.text:='SELECT Count(*) AS [Count-Фамилия],Комнаты.Комната FROM Комнаты,Студенты WHERE Комнаты.Код_комнаты = Студенты.Код_комнаты AND Комнаты.Комната='+'"'+Edit2.Text+'"'+' GROUP BY Комнаты.Комната';
DataModule4.ADOQueryPoisk.Active:=true;
DataModule4.ADOQueryPoisk.Open;
DataModule4.ADOQueryPoisk.SQL.text:=IntToStr(m);
label2.Caption:='Количество студентов проживающих в комнате'+edit2.Text+'равно'+IntToStr(m);
end;
StudentMarat вне форума Ответить с цитированием
Старый 10.12.2011, 00:33   #6
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
дык подставь в запрос, или это тоже описывать?
Опишите please
StudentMarat вне форума Ответить с цитированием
Старый 10.12.2011, 00:37   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
DataModule4.ADOQueryPoisk.Active:=false;
DataModule4.ADOQueryPoisk.SQL.text:='SELECT Count(*) AS [Count-Фамилия],Комнаты.Комната FROM Комнаты,Студенты WHERE Комнаты.Код_комнаты = Студенты.Код_комнаты AND Комнаты.Комната='+'"'+Edit2.Text+'"'+' GROUP BY Комнаты.Комната';
DataModule4.ADOQueryPoisk.Active:=true;
label2.Caption:='Количество студентов проживающих в комнате '+edit2.Text+' равно '+DataModule4.ADOQueryPoisk.FieldByName('Count-Фамилия').AsString;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.12.2011, 01:00   #8
StudentMarat
Форумчанин
 
Регистрация: 10.10.2008
Сообщений: 123
По умолчанию

Спасибо за помощь. Тему можно закрыть.
StudentMarat вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL Запрос на количество strangegirl SQL, базы данных 5 02.05.2011 19:43
Получить количество строк не делая лишний запрос lacost SQL, базы данных 7 20.01.2011 11:06
Составьте запрос, который позволяет подсчитать в таблице Экзамен количество различных предметов обучения. настенка=) Помощь студентам 3 26.05.2010 03:16
количество цифр и количество символов до первой гласной буквы 111111 Общие вопросы C/C++ 2 22.12.2008 12:15
запрос который бы подсчитывал количество полных лет начиная с того года который указан в данных мне базах PereCCC Помощь студентам 8 15.05.2008 16:24