![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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?