Текущий архив: 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.45 MB
Время: 0.033 c