Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

SQL - запрос не работает   Найти похожие ветки 

 
Meson ©   (2003-05-19 23:45) [0]

Есть такой запрос:

select
t1.f1,
(select f
from (select min(f2) f
from t2) t) as f
from t1
where f1=1

этот запрос работает вполне исправно.

select
t1.f1,
(select f
from (select min(f2) f
from t2
WHERE f2=t1.f1 ) t) as f
from t1
where f1=1

А этот не хочет.
В секции WHERE пришет t1.f1 -- не известно

Кто скажет в чем дело?


 
Ihor Osov'yak ©   (2003-05-20 00:36) [1]

Чего-то я не вьехал.. Зачем так мудро? Какой движок? Зачем там одиночное t?

Нельзя ли попроще, к примеру

select
t1.f1,
(select min(f2)
from t2
WHERE f2=t1.f1 ) as f
from t1
where f1=1


 
Mesonbareon   (2003-05-20 13:43) [2]

База - Оракл.

Так мудрено получилось из-за того, что я все несущественное просто выбросил, дабы не заслоняло суть дела.

В реальном запросе (около 500 строк) "одиночное t" возвращает упорядоченный (по дате) список полей из которого затем извлекается самая свежая запись (... where RowNum = 1).

Разумеется запрос можно переформулировать, возможно с потерей в элегантности (читабельности) и скорости. Дело не в этом.
Вопрос в том, почему внутренний подзапрос не распознает полей из внешних по отношению к нему запросов. Ведь должен как будто?


 
Ihor Osov'yak ©   (2003-05-21 10:38) [3]

> Ведь должен как будто?

Должен как-будто.. Вообще-то я не с ораклов. В IB,MSSQL с такой конструкцией проблем нет. www.sql.ru - там есть форумы, сортированные по движкам, и, кажется, втч по ораклу..



Страницы: 1 вся ветка

Текущий архив: 2003.06.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
8-26613
farhad
2003-02-26 11:49
2003.06.09
Вопрос для настоящих программистов!


3-26385
HelDet
2003-05-21 13:01
2003.06.09
TDBImage (извлечь из Microsoft Access)


3-26397
Zn
2003-05-19 18:41
2003.06.09
При отображении в DBGrid поля Float отображается мусор.


3-26348
kanat
2003-05-20 13:59
2003.06.09
конвертировать в parabox7


3-26387
bobr12
2003-05-21 13:37
2003.06.09
Как в DBGrid.Options в программе установить dgMultiSelect в True?