![]() |
|
|
#1
|
|||
|
|||
![]() Имеется запрос1 к базе.
Как записать запрос2, что бы он работал ТОЛЬКО с данными, полученными в запросе1. Что то типа Код:
select...From adoquery1 where... Можно конечно в запросе2 указать теже условия что и в запросе1, но для верности хочется работать с уже отобранными данными. |
#2
|
|||
|
|||
![]() Это?
Код:
select * from ( select f1,f2,f3 from tbl1 ) foo where f1 = 1000; А, вообще, можно и view сделать из первого запроса... |
#3
|
|||
|
|||
![]() Цитата:
Здесь происходит дублирование запроса1, а нужно работать с уже отобранными данными. Может как то можно подвязать datasource, относящийся к adoquery1? |
#4
|
|||
|
|||
![]() Не догоняю я никак....
Вот первый запрос Код:
A1:=STRTOINT(FORM2.Edit1.Text); ADOQUERY1.Close; ADOQUERY1.SQL.Text:='select S, OTD, DATA_POS, FIO, SUMMA, VAL, SD_V_KL, SD_V_CBU '+ 'FROM INKASSO '+ 'WHERE OTD=:A1 AND SD_V_KL<>1 AND SD_V_CBU<>1'; ADOQUERY1.Parameters[0].Value:=A1; ADOQUERY1.Open; AS 30 и AS 40 нужны, чтобы потом эти суммы показать в EDIT |
#5
|
|||
|
|||
![]() Тогда считай кодом на клиенте. Напрямую Дельфи такое не позволяет.
Либо можно выполнить простенький дополнительный запрос, но он будет повторять этот запрос. |
#6
|
||||
|
||||
![]() да все правильно уважаемый lmikle написал
и это будет не "дублирование запроса1", а создание временной таблицы, типа, представь, что у тебя есть такая таблица, вот и выбирай с нее суммы, количества, средние... т.е. Код:
SELECT (SELECT SUM(SUMMA) where VAL = 30) as Sum_30, (SELECT SUM(SUMMA) where VAL = 40) as Sum_40 FROM (SELECT S, OTD, DATA_POS, FIO, SUMMA, VAL, SD_V_KL, SD_V_CBU FROM INKASSO WHERE OTD=:A1 AND SD_V_KL<>1 AND SD_V_CBU<>1) as My_New_Table Я за здоровый экстрим! Спасибо за "спасибо") |