![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос на базе другого запроса [D7]
UMU © (2006-08-09 14:08:00)Использую БД Access, с помощью ADOQuery1 отбираю нужные данные.
Подскажите, пожайлуста, как можно сделать ADOQuery2 так, чтобы он выбирал записи из ADOQuery1?
UMU (2006-08-10 10:16:00) [1]Ребята, спасибо за помощь
Ega23 (2006-08-09 18:03:00) [2]
> Передразниваешь ?
Ой, твоего поста не заметил...
MsGuns (2006-08-09 18:00:00) [3]>Ega23 © (09.08.06 17:34) [9]
Передразниваешь ?
;)
Ega23 (2006-08-09 17:34:00) [4]
Select * from (Select что-то from Table1 T1, Table2 T2 where T1.ID=T2.ID) as A, Table3 T3
where A.что-то = T3.ID
Типа такого что-то
UMU (2006-08-09 17:26:00) [5]
> Sergey13 © (09.08.06 14:37) [5]
Как я писал UMU © (09.08.06 14:26) [3]
проблем нет кроме удаления таблицы.
> zdm © (09.08.06 14:48) [6]
> DataModule1.ADOQuery_tmp:=DataModule1.ADOQuery_tmp2
А как это использовать?
MsGuns (2006-08-09 17:18:00) [6]Не надо никаких временных таблиц:
Q2.SQL.Text := 'SELECT A.* FROM ('+Q1.SQL.Text+') A '+
'WHERE <тут что надо> ORDER BY ...'
Есть, правда 2 нюанса:
1. Из Q1 надо вырезать ORDER BY, если есть
2. Если Q1 параметрический, то надо в Q2 пробежаться по параметрам и присвоить им те же значения, что и в Q1
zdm (2006-08-09 14:48:00) [7]DataModule1.ADOQuery_tmp:=DataModule1.ADOQuery_tmp2;
Sergey13 (2006-08-09 14:37:00) [8]> [3] UMU © (09.08.06 14:26)
Так в чем трудность то?
1. Создал таблицу (и заполнил ее данными, насколько я понял, типа insert into select)
2. Читаешь вторым запросом эту таблицу, а не запрос.
3. Третьим квериком убиваешь созданную таблицу.
Нормальная реализация кривой постановки про временные таблицы. 8-)
UMU (2006-08-09 14:30:00) [9]
> SergP © (09.08.06 14:21) [2]
Такой вариант использую, но нежелательно, чтобы запросы находились в БД.
UMU (2006-08-09 14:26:00) [10]1.Одним запросом не получается
2.На базе ADOQuery1 я создаю таблицу в БД, а потом c помощью ADOQuery2 выбираю нужные данные. Все нормально, но появляется вопрос : как программно удалить эту таблицу?
SergP (2006-08-09 14:21:00) [11]> [0] UMU © (09.08.06 14:08)
> Использую БД Access, с помощью ADOQuery1 отбираю нужные
> данные.
>
> Подскажите, пожайлуста, как можно сделать ADOQuery2 так,
> чтобы он выбирал записи из ADOQuery1?
Можно например запрос, который у тебя в ADOQuery1, оформить в БД в виде представления...
fishka (2006-08-09 14:15:00) [12]1.Написать 1 запрос, чтобы его результат соответствовал задаче.
2.Через временную таблицу (если они есть в БД Access).