On Thu, 18 Oct 2007 14:46:53 +0400, Serge Buzadzhy <[EMAIL PROTECTED]> wrote:

> Понятно. Пока человек ждет от нас оптимального ответа, мы сочиняем 
> интересный. :)))  Впрочем сам виноват. Хотел "красивого решения", а понятия 
> "красоты" не уточнил.

Ему целых два варианта дали.
Вот ещё один.

create procedure ...
returns (aDate date, val double precision)
as
   declare variable nextDate date;
   declare variable val1 double precision;
begin
   nextDate = periodBegin;
   for select datetime, val from test order by datetime+0
     into aDate, val
   do begin
     if (nextDate < aDate) then begin
       val1 = val; val = null; -- or val = 0
       while (nextDate < aDate) do begin
         suspend;
         nextDate = nextDate+1;
       end
       val = val1;
     end
     suspend;
     nextDate = aDate+1;
   end

   val = null;
   while (nextDate <= perionEnd) do begin
     suspend;
     nextDate = nextDate+1;
   end
end

-- 
Сергей Смирнов.

Ответить