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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 14:22   #1
EugeneIsmatulin
Пользователь
 
Аватар для EugeneIsmatulin
 
Регистрация: 24.05.2009
Сообщений: 64
Восклицание Как создать правильно запрос ....

Подскажите как можно построить запрос: есть две таблицы
в первой (группы) во второй (группа, предметы)
мне нужно при выборе из первой таблицы (группы) что бы во второй выбирались предметы только этой группы и выводились в DBGrid
EugeneIsmatulin вне форума Ответить с цитированием
Старый 27.05.2009, 14:57   #2
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию

Вот так, но тут на PHP :

Код:
$db = mysql_connect ("/*хост*/","/*пользователь*/","/*пароль*/");
mysql_select_db ("/*база данных*/", $db);
$id = mysql_query("SELECT /*порядковый номер группы*/ FROM /*таблица групп*/");
$predmets = ("SELECT /*список предметов*/ FROM /*таблица с предметами*/ WHERE idgroup = $id");
unicode вне форума Ответить с цитированием
Старый 27.05.2009, 14:59   #3
EugeneIsmatulin
Пользователь
 
Аватар для EugeneIsmatulin
 
Регистрация: 24.05.2009
Сообщений: 64
По умолчанию

мне нужно построить запрос на Delphi
EugeneIsmatulin вне форума Ответить с цитированием
Старый 27.05.2009, 15:12   #4
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

В событии таблицы OnCellClick
пропешите процедуру фильтрации
что-то типа
Код:
query2.active:=false;
query2.sql.clear;
query2.sql.add('SELECT * FROM Tablica2 WHERE Группа="'+query1.FieldByName('группа').asstring+'"');
query2.active:=true;
S@fer вне форума Ответить с цитированием
Старый 27.05.2009, 15:40   #5
EugeneIsmatulin
Пользователь
 
Аватар для EugeneIsmatulin
 
Регистрация: 24.05.2009
Сообщений: 64
По умолчанию

Я не правельно высказался есть две таблицы в одной (группы, семестр) во второй (группы, семестр и предметы) нужно сделать запрос, тоесть из первой таблицы выбираем нужную нам группу и семестр с помощью DBLookupComboBox и DBEdit нажимаем на кнопку "Показать" запрос должен выбрать из второй таблицы предметы которые относятся к выбранной группе и семестру из первой таблицы и показать их DBGrid.
EugeneIsmatulin вне форума Ответить с цитированием
Старый 27.05.2009, 15:44   #6
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Тогда по нажатию кнопки
Код:
query2.active:=false;
query2.sql.clear;
query2.sql.add('SELECT * FROM Tablica2 WHERE Группа="'+DBLookupComboBox.text+'" AND Семестр='+DBEdit.text+'');
query2.active:=true;
query2 дожен быть связан с дбгридом
S@fer вне форума Ответить с цитированием
Старый 28.05.2009, 06:40   #7
EugeneIsmatulin
Пользователь
 
Аватар для EugeneIsmatulin
 
Регистрация: 24.05.2009
Сообщений: 64
По умолчанию

S@fer чтото у меня не получается
Код:
  DM.QUcebPlan.Active:= False;
  DM.QUcebPlan.SQL.Clear;
  DM.QUcebPlan.SQL.Add('SELECT * FROM DM.TUcebnPlan WHERE Grup="'+DBLookupComboBox2.Text+'" AND Semestr='+DBEdit1.Text+'');
  DM.QUcebPlan.Active:= True;
Пишет Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Grup="3704 -1 курс" AND Semestr=1 семестр'

Что я делаю не так? Я так понимаю
Цитата:
query2.sql.add('SELECT * FROM Tablica2 WHERE Группа="'+DBLookupComboBox.text+'" AND Семестр='+DBEdit.text+'');
Tablica это таблица в которой мы делаем запрос а Группа и Семестр это поля этой таблицы.
EugeneIsmatulin вне форума Ответить с цитированием
Старый 28.05.2009, 06:59   #8
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
Tablica это таблица в которой мы делаем запрос а Группа и Семестр это поля этой таблицы
Да
Код:
Попробуйте взять условие в скобки
 WHERE ((Grup="'+DBLookupComboBox2.Text+'") AND (Semestr='+DBEdit1.Text+'))
S@fer вне форума Ответить с цитированием
Старый 28.05.2009, 07:30   #9
EugeneIsmatulin
Пользователь
 
Аватар для EugeneIsmatulin
 
Регистрация: 24.05.2009
Сообщений: 64
По умолчанию

Таже ошибка, может я таблицу неправельно прописываю она у меня находиться в дата модуле
Цитата:
DM.QUcebPlan.SQL.Add('SELECT * FROM DM.TUcebnPlan WHERE Grup="'+DBLookupComboBox2.Text+'" AND Semestr='+DBEdit1.Text+'');
Eror.jpg
EugeneIsmatulin вне форума Ответить с цитированием
Старый 28.05.2009, 07:37   #10
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Так. Секунду.
Что такое DM.TUcebnPlan?
Какую СУБД используете?
Если Access, то после слова FROM должно стоять только название таблицы в БД
S@fer вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно создать запрос по поиску в базе Access? Dux SQL, базы данных 2 03.05.2009 13:37
Как создать перекрестный запрос в С#? Etlau Общие вопросы .NET 0 26.04.2009 16:07
Как создать запрос с использованием данных из combobox ксона БД в Delphi 9 13.12.2008 16:52
Создать веб запрос Shavminator Microsoft Office Excel 7 26.09.2008 16:33
Как создать перекресный запрос в QR??? Tanuska___:) БД в Delphi 0 22.09.2008 11:13