Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Mssql ADO не нравится конструкция with as  [new]
Freeze729
Member

Откуда:
Сообщений: 161
Добрый день.
Делема:
Делаю запрос через ADOQuery в C++ Builder конструкция with t as(...) ... Ругается!

Подскажите каков синтаксис выборки всей полученной инфы из запроса в mssql.
C++ Builder 6 так же как и VBA едят только "select... from..."
А конструкцию "with as t1 as (...)..." обругивают.
Я в одно время напарывался таким образом в VBA.
В оракле это решается так:
select * from 
( 
  with t as(...)
)


А как это делается в mssql? Я нашел только синаксис условных конструкций, типа select * from t where id in (...).
А мне нужна просто выборка.

P.S.
И еще, есть ли желающие оптимизировать один большой запрос из 3-х with, каждый из которых внутри себя связывает три таблицы?
БД MSSQL 2005.
За трехдолларовую благодарность. Сюда не хочу валить запрос. В личку напишите плиз, если интересно.
Если что из правил нарушил и форум превратил в бардель, просьба не гневаться. Ребенок не ведает че творит.
3 фев 12, 17:57    [12029252]     Ответить | Цитировать Сообщить модератору
 Re: Mssql ADO не нравится конструкция with as  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6201
Freeze729,

WITH common_table_expression (Transact-SQL)
3 фев 12, 18:00    [12029272]     Ответить | Цитировать Сообщить модератору
 Re: Mssql ADO не нравится конструкция with as  [new]
каммент
Guest
Freeze729,

попробуй поставть в начале запроса какой-нить левый каммент, типа

--  бла бла бла
; with ...
3 фев 12, 18:05    [12029300]     Ответить | Цитировать Сообщить модератору
 Re: Mssql ADO не нравится конструкция with as  [new]
Freeze729
Member

Откуда:
Сообщений: 161
каммент
Freeze729,

попробуй поставть в начале запроса какой-нить левый каммент, типа

--  бла бла бла
; with ...


Ну чуудеесаа... всего-лишь --бла бла и работает же. Спасибо. Теперь у меня новая ветвь понимания, по какой причине баги.

Товарищ, Пелевин)) Спасибо за ссылку. Но я не конструкцию with хотел, а то что ADO на нее ругается.
В оракловой БД можно было взять запрос в скобки и сделать выборку через select * from (запрос с With).
MSSQL ругается, у этой бд иная конструкция выборки.
3 фев 12, 18:15    [12029378]     Ответить | Цитировать Сообщить модератору
 Re: Mssql ADO не нравится конструкция with as  [new]
каммент
Guest
Freeze729
каммент
Freeze729,

попробуй поставть в начале запроса какой-нить левый каммент, типа

--  бла бла бла
; with ...


Ну чуудеесаа... всего-лишь --бла бла и работает же. Спасибо. Теперь у меня новая ветвь понимания, по какой причине баги.

Товарищ, Пелевин)) Спасибо за ссылку. Но я не конструкцию with хотел, а то что ADO на нее ругается.
В оракловой БД можно было взять запрос в скобки и сделать выборку через select * from (запрос с With).
MSSQL ругается, у этой бд иная конструкция выборки.

MSSQL здесь не причем, парсить текст пытается ado. По его мнению текст запроса рекордсета должен начинаться либо с селекта, либо с вызова ХП, либо с комментария (это упрощенно, возможно есть другие варианты).
О появление with ado, к сожалению, так и "не узнало", в оракле вы обманывали его внешним селектом, в MSSQL такого синтаксиса нет, приходится обманывать комментариями.
3 фев 12, 18:24    [12029433]     Ответить | Цитировать Сообщить модератору
 Re: Mssql ADO не нравится конструкция with as  [new]
Freeze729
Member

Откуда:
Сообщений: 161
Ясно. Спасибо за подробности. Значит и VBA по такой теме глохло.
А запрос мне кто-нибудь может оптимизировать? Кто более менее знает SQL.
аська 348-165-513.
3 фев 12, 18:31    [12029481]     Ответить | Цитировать Сообщить модератору
 Re: Mssql ADO не нравится конструкция with as  [new]
трехдолларовая благодарность
Guest
Freeze729
А запрос мне кто-нибудь может оптимизировать?

Freeze729
За трехдолларовую благодарность.

не смешите, лучше сюда выкладывайте (тока рекомендации почитайте по оформлению вопросов), больше шансов что помогут.
3 фев 12, 18:34    [12029491]     Ответить | Цитировать Сообщить модератору
 Re: Mssql ADO не нравится конструкция with as  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6201
Freeze729
Но я не конструкцию with хотел, а то что ADO на нее ругается.

ADO - всего лишь провайдер данных.
Freeze729
В оракловой БД можно было взять запрос в скобки и сделать выборку через select * from (запрос с With).
MSSQL ругается, у этой бд иная конструкция выборки.

Поэтому я и дал ссылку на документацию. Из которой, в частности, следует, что with нельзя засунуть в подвыборку, все используемые CTE должны быть объявлены подряд в начале запроса.
4 фев 12, 03:12    [12031527]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить