У меня есть ODBC-соединение с базой данных SQL Server, и поскольку я возвращаю большие наборы записей с моими запросами, я обнаружил, что быстрее запускать сквозные запросы, чем собственные запросы Access.Вложенные сквозные запросы?
Но мне сложно писать и упорядочивать мои запросы, поскольку, насколько я знаю, я не могу сохранить несколько разных сквозных запросов и присоединиться к ним в другом сквозном запросе. У меня есть доступ только для чтения к этой базе данных, поэтому я не могу сохранять хранимые процедуры в SQL Server, а затем ссылаться на них в прохождении.
Например, предположим, что я хочу, чтобы получить только те записи с максимальным значением o_version
из следующего запроса:
select d.o_filename,d.o_version,parent.o_projectname
from dms_doc d
left join
dms_proj p
on
d.o_projectno=p.o_projectno
left join
dms_proj parent
on
p.o_parentno=parent.o_projectno
where
p.o_projectname='ABC'
and
lower(left(right(d.o_filename,4),3))='xls'
and
charindex('xyz',lower(d.o_filename))=0
Я хочу, чтобы получить только те записи с максимальным значением d.o_version
. Обычно я хотел бы сохранить это как запрос называется, например, abc
, а затем написать еще один запрос abcMax
:
select * from abc
inner join
(select o_filename,o_projectname,max(o_version) as maxVersion from abc
group by o_filename,o_projectname) abc2
on
abc.o_filename=abc2.o_filename
and
abc.o_projectname=abc2.o_projectname
where
abc.o_version=abc2.maxVersion
Но если я не могу хранить abc
как запрос, который может быть использован в проходном запроса abcMax
, то не только мне нужно копировать весь объект abc
в abcMax
несколько раз, но если я внесем какие-либо изменения в содержание abc
, тогда мне нужно сделать их для каждой копии, встроенной в abcMax
.
Альтернативой является запись abcMax
в качестве обычного запроса доступа, который вызывает abc
, но это снизит производительность, поскольку запрос теперь обрабатывается ACE вместо SQL Server.
Есть ли способ вставить хранимые сквозные запросы в Access? Или создает хранимые процедуры на SQL Server только для этого?