Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли сделать запрос SQL из данных фиктивной таблицы?


Страницы:   1 2

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, какая?!!! я ничего не вижу (


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо