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

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

SQL фрагмент


Гость_ ©   (2007-02-04 19:07:00) 

Во вложенных запросах нельзя использовать order by?
...
PD2.X = (
select OP2.X
from OperPack OP2
where
to_date(to_char(OP2.DAY) || '.' ||
to_char(OP2.MONTH) || '.' ||
to_char(OP2.YEAR),'dd.mm.yyyy') <
to_date('5.1.2007','dd.mm.yyyy' ) and
OP2.ID = OO.I  and rownum = 1
order by OP2.year desc, OP2.month desc, OP2.day desc )
...
говорит
ORA-00907: missing right parenthesis
без order by OP2.year desc, OP2.month desc, OP2.day desc  компиль проходит нормально.
если с order by нельзя, то как можно выкрутиться? мне обязательно нужен предыдуший день (то есть сортировка обязательна)


Sergey13   (2007-02-05 08:25:00) [1]

> [0] Гость_   (04.02.07 19:07)
> ORA-00907
Это ошибка с количеством скобок.

> rownum = 1
rownum вычисляется ДО сортировки, поэтому такое твое использование его - неправильно.

> Нужна запись, которая была перед этим днём, а она могла
> быть и месяц назад!!!

Select max(date_field) from table where date_field<:date_param


Гость_   (2007-02-04 20:21:00) [2]

Нашёл, что order by во вложенном запросе использовать нельзя :(
http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=9376

Нужна запись, которая была перед этим днём, а она могла быть и месяц назад!!!


DrPass   (2007-02-04 20:09:00) [3]


> мне обязательно нужен предыдуший день (то есть сортировка
> обязательна)

Что тебе мешаяет явно указать этот "предыдущий день" в условии where вместо использования rownum и order by?


Наверх

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