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

Вниз

singleton-набор данных   Найти похожие ветки 

 
zorik ©   (2004-07-15 09:33) [0]

Есть таблица с полем дата и другими информативными полями. Пользователь задает дату и если запись с такой датой есть в таблице - процедура должна вернуть одну запись именно с этой датой, если нет - предыдущюю запись.
Вопрос. Вернет ли такая конструкция именно то что нужно. Когда проходит сортировка в теле for select - do или после всего перебора?

FOR
   SELECT date1, a1
   FROM D01
   WHERE date1<=:userdate
   order by date1 desc
   INTO :date1, :a1
 DO
 BEGIN
   SUSPEND;
   EXIT;
 END


 
Johnmen ©   (2004-07-15 09:49) [1]

FOR - это оператор цикла
после DO - оператор тела цикла, в т.ч. и бегин-блок

То, что ты хочешь, можно просто запросом
SELECT *
FROM D01 T1
WHERE T1.date1=(SELECT MAX(T2.date1)
               FROM D01 T2
               WHERE T2.date1<=:userdate)


 
zorik ©   (2004-07-15 09:58) [2]

Спасибо! А то что я написал правильно работает? Сначала отсортируется а потом вылетит по EXIT или может выйти раньше из процедуры?


 
Johnmen ©   (2004-07-15 10:00) [3]

Правильно.


 
zorik ©   (2004-07-15 10:04) [4]

Спасибо!



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

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

Наверх




Память: 0.47 MB
Время: 0.033 c
3-1089880727
Алексей
2004-07-15 12:38
2004.08.08
Смерть ADO. Как восстановить?


4-1088496599
Lin
2004-06-29 12:09
2004.08.08
Кнопка в заголовке всех окон


1-1090684174
Mental_Ray
2004-07-24 19:49
2004.08.08
Тупой вопрос: как перевести байты в Кб, Мб? :)


1-1090907569
prorok2
2004-07-27 09:52
2004.08.08
Смещение компонент при разворачивание формы на полный экран


6-1086428501
Dennisius
2004-06-05 13:41
2004.08.08
StatusBar в TWebbrowser