Hello, St.!
You wrote  on Wed, 17 Oct 2007 21:57:11 +0400:

SA> И пусть в меня кинут камнем, если это не SQL-запрос :-)
Камнем кину, но по другой причине. :)
Ты свой запрос сам-то запускал?

execute block
returns (a_missed integer)
as
declare variable a_max integer;
begin
 a_max=2007;
 a_missed=2000;
 /*select min(nyear) from prd into a_missed;*/
 if (a_missed is not null) then
  begin
    /*select max(nyear) from prd into :a_max;*/
    while (a_missed <=a_max) do
      begin
if (not exists (select * from prd where nyear=:a_missed )) then suspend;
        a_missed=a_missed+1;
      end
  end
end

Этот работает. В таблице prd есть данные за 2002-2005 годы. Запрос возвращает отсутствующие из диапазона 2000-2007, т.е. 2000, 2001, 2006, 2007. Найди отличия :).
--
Удач
Alexander A. Venikov, Tobolsk, Russia

Reply via email to