Мне нужно, чтобы работало быстро с выборкой по периоду.
ХП не подходит, т.к. это будет использоваться в редактируемых представлениях (updatable views).
Практическая польза - получение длительности действия каждого значения (цены в данном случае) для дальнейших расчетов.
Что касается метода, предложенного 
Brainenjii, то не факт, что даты будут вставляться последовательно.
- Код: Выделить всё
- SELECT
 t1.FPrice,
 t1.FDate,
 (SELECT MIN(FDate) FROM TBL_PRICE AS t2 WHERE  t1.FDate < t2.FDate)
 FROM TBL_PRICE as t1
 WHERE t1.FDate BETWEEN '01.01.2007' AND '01.09.2007'
 
Здесь наверняка все дело в порядке выполнения запроса - нужно заставить огнептицу сначала ограничить выборку по периоду (WHERE t1.FDate BETWEEN '01.01.2007' AND '01.09.2007'), а уж затем приступать к выборке результирующих полей. Для этого, как я понимаю, есть (по крайней мере в 2.0+) ключевое слово PLAN, вот только как им пользоваться - непонятно.
Вот какой план показывает IBExpert:
- Код: Выделить всё
- План
 PLAN (T2 ORDER TBL_PRICE_IDX2 INDEX (TBL_PRICE_IDX2))
 PLAN (T1 INDEX (TBL_PRICE_IDX2))
 
 Адаптированный план
 PLAN (T2 ORDER TBL_PRICE_IDX2 INDEX (TBL_PRICE_IDX2)) PLAN (T1 INDEX (TBL_PRICE_IDX2))