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

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

Помогите с запросом в MSSQL [D7, MSSQL]


Vilux ©   (2004-04-25 08:49:00) 

Есть запрос, описанный ниже. При работае с Access БД он выполнялся нормально, а при переходе на MSSQL стал выдавать ошибку
"The ORDER BY clause is invalid in views,inline functions, derived tables, and subqueries, unless TOP is also specified."
Я не силен в MSSQL, поэтому прошу помочь, как надо исправить запрос?
Вот сам запрос
select left(cname,1) as ch from (SELECT Cards.CardID, Cards.Name AS cName, Cards.ParentID, Cards_1.Name as pName, Streets.Name AS stName, Addresses.Build, Addresses.Transport FROM (Streets INNER JOIN (Addresses INNER JOIN (Cards INNER JOIN CardLinks ON Cards.CardID = CardLinks.CardID) ON Addresses.AddrID = Cards.AddrID) ON Streets.StreetID = Addresses.StreetID) LEFT JOIN Cards AS Cards_1 ON Cards.ParentID = Cards_1.CardID  GROUP BY Cards.CardID, Cards.Name, Cards.ParentID, Cards_1.Name, Streets.Name, Addresses.Build, Addresses.Transport ORDER BY Cards.Name'#$D#$A') group by left(cname,1) order by left(cname,1)'#$D#$A


mtihonov   (2004-04-26 08:32:00) [1]

надо писать
select t1.*
from (select * from Table0 ) t1


RusGrek   (2004-04-26 08:30:00) [2]

В Help'e написано
[ FROM { < table_source > } [ ,...n ] ]
где
< table_source > ::=
   table_name и т.д.

поэтому если написать
s:='SELECT * FROM (select * from Streets) Street2';
то все будет ОК.


mtihonov   (2004-04-26 08:30:00) [3]

Запросы типа
select *
from (select * from Table)
на mssql не проходят


Polevi   (2004-04-26 08:26:00) [4]

SELECT t.* FROM (select * from Streets) t


Vilux   (2004-04-26 07:41:00) [5]

Я пытаюсь выполнить следующее
  s:='SELECT * FROM (select * from Streets)';
  q:=TAdoquery.Create(nil);
  q.Connection:=conn;
  q.SQl.Clear;
  q.SQL.Add(s);
  q.Open;
Так у меня ошибка вылетает
raised exception class EOleException with message 'Line 1: Incorrect syntax near ')'
Что за фигня?
Причем запрос
select * from Streets
выполняется...
Хелп!!!


DarkMan   (2004-04-26 05:19:00) [6]

Создай такой же запрос на MSSQL и скорей всего он будет работать и там и там


MOA   (2004-04-25 12:03:00) [7]

А зачем сортировать подзапрос? Отнюдь не факт, что эта сортировка как-то сохранится в результате.


Polevi   (2004-04-25 09:49:00) [8]

ты ссобщение об ошибке перевел ?
select top 10 left(cname,1) as ch from .....


Наверх

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