![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли сделать запрос SQL из данных фиктивной таблицы?
gedevan © (2016-01-29 08:45:00)Есть таблицы из которых я получаю данные, и есть список полей по которым я хотел бы эту выборку ограничить. Ограничение должно выполняться по 2м полям. Список этот может быть оооочень длинным. И когда я попытался добавить все это условие в раздел where, то Access ругнулся на то что запрос слишком сложный. Тогда я решил сделать из этого списка таблицу и сделать запрос по обеим таблицам с условием равенства значений в колонках (или joinуть таблицы, и выкинуть строки в которых NULL получилось). Но делать ради этого реальную таблицу и сохранять ее в бд мне совсем не хочется. Можно ли обойтись без этого?
Вот что изобрел я, но он ругается на то, что в качестве входных данных должна быть таблица или запрос, а где взять эту таблицу для моего фиктивного подзапроса я не знать, можно ли так вообще делать?.
'Select
''Tem'',ShotNumber,Name,ItemName,NumberOfSearch,tempfound,itIsTemplate, anotherTime, SearchFixed, x1,x2,y1,y2,ksov,searchtime,FourSearch,NULL,errorCode
FROM
Templates,
( SELECT ''Overview'' as Name1,'''' as ItemName1 UNION SELECT ''Overview'' as Name1,''TL'' as ItemName1 ) as distTab
where ShotNumber = :prm0 and (Templates.Name = distTab.Name1)
//далее прочие запросы, в них нет попытки фильтра
UNION Select ''Col'',ShotNumber, Name,''no items'',0,tempfound,''false'',''false'',''false'',x1,x2,y1,y2,0,searchtime,''fal se'',NULL,errorCode FROM ColorSearch where ShotNumber = :prm2 UNION Select ''Dyn'',ShotNumber, Name,''no items'',NumberOfSegment,tempfound,''false'',''false'',''false'',x1,x2,y1,y2,0,se archtime,''false'',NULL,errorCode FROM DynObj where ShotNumber = :prm1 UNION Select ''Tex'',ShotNumber, Name,''no items'',NumberOfSegment,tempfound,''false'',''false'',''false'',x1,x2,y1,y2,0,se archtime,''false'',RecognizedText,errorCode FROM TextRecognize where ShotNumber = :prm3;'
gedevan (2016-01-29 11:45:00) [21]
> select 'value' as field1,
> 666 as field2
я не понял мысль.
gedevan (2016-01-29 11:44:00) [22]хм...более того он создает в базе таблицу....т.е. без этого никак? придется в любом случае создавать?
sniknik (2016-01-29 11:01:00) [23]аксесс не умеет выполнять пакеты, только команды.
кгшзх (2016-01-29 10:34:00) [24]select 'value' as field1,
666 as field2
gedevan (2016-01-29 10:21:00) [25]
CREATE TABLE distTab (Name1 char(50), ItemName1 char(50));
insert into distTab VALUES (''Undocking'', '''' ),(''Undocking'', ''DefaultItem'' );
Select ''Tem'',ShotNumber,Name,ItemName,NumberOfSearch,tempfound,itIsTemplate, anotherTime, SearchFixed, x1,x2,y1,y2,ksov,searchtime,FourSearch,NULL,errorCode FROM Templates where ShotNumber = :prm0 and (Templates.Name = distTab.Name1) and (Templates.ItemName = distTab.ItemName1);
ничего не могу понять ( говорит синтаксическая ошибка в выражении CREATE TABLE, какая?!!! я ничего не вижу (