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