>> именно от этого и колбасит. хочу потому чта
>
> Нафуя, скажи честно? Я не понимаю, что такой запрос должен вернуть.

чтобы не плодить однотипные процедуры, и не потерять эффективность 
выполнения

create table A(
ID integer not null primary key,
GROUP_FIELD char(1),
ORDER_FIELD char(1),
DATA_FIELD char(2));

insert into A values ( 0, 'X' , 'A', 'D1')
insert into A values ( 1, 'X' , 'B', 'D2');
insert into A values ( 2, 'X' , 'C', 'D3');
insert into A values ( 3, 'Y' , 'D', 'D4');
insert into A values ( 4, 'Y' , 'E', 'D5');
insert into A values ( 5, 'Y' , 'F', 'D6');

set term ^ ;
create procedure AA
returns
(
ID integer ,
GROUP_FIELD char(1),
DATA_FIELD char(2))
as
declare variable OLD_GROUP char(1);
begin
 OLD_GROUP = '-';
 for select ID, GROUP_FIELD, DATA_FIELD
     from A
     order by GROUP_FIELD, ORDER_FIELD
     into :ID, :GROUP_FIELD, :DATA_FIELD
     do begin
         if (:GROUP_FIELD <> OLD_GROUP)
             then begin
                   OLD_GROUP = GROUP_FIELD;
                   suspend;
                  end
        end
end^

set term ; ^

select * from AA


Query
------------------------------------------------
/*create table A(
ID integer not null primary key,
GROUP_FIELD char(1),
ORDER_FIELD char(1),
DATA_FIELD char(2));

insert into A values ( 0, 'X' , 'A', 'D1')
insert into A values ( 1, 'X' , 'B', 'D2');
insert into A values ( 2, 'X' , 'C', 'D3');
insert into A values ( 3, 'Y' , 'D', 'D4');
insert into A values ( 4, 'Y' , 'E', 'D5');
insert into A values ( 5, 'Y' , 'F', 'D6');

set term ^ ;
create procedure AA
returns
(
ID integer ,
GROUP_FIELD char(1),
DATA_FIELD char(2))
as
declare variable OLD_GROUP char(1);
begin
 OLD_GROUP = '-';
 for select ID, GROUP_FIELD, DATA_FIELD
     from A
     order by GROUP_FIELD, ORDER_FIELD
     into :ID, :GROUP_FIELD, :DATA_FIELD
     do begin
         if (:GROUP_FIELD <> OLD_GROUP)
             then begin
                   OLD_GROUP = GROUP_FIELD;
                   suspend;
                  end
        end
end^

set term ; ^
*/
select * from AA


Plan
------------------------------------------------
PLAN SORT ((A NATURAL))

Adapted Plan
------------------------------------------------
PLAN SORT ((A NATURAL))

Query Time
------------------------------------------------
Prepare       : 0,00 ms
Execute       : 16,00 ms
Avg fetch time: 8,00 ms

Memory
------------------------------------------------
Current: 1 613 220
Max    : 1 717 568
Buffers: 2 048

Operations
------------------------------------------------
Read   : 0
Writes : 2
Fetches: 24


Enchanced Info:
+--------------------------+-----------+-----------+-------------+---------+---------+---------+
|        Table Name        |  Records  |  Indexed  | Non-Indexed | Updates | 
Deletes | Inserts |
|                          |   Total   |   reads   |    reads    |         | 
|         |
+--------------------------+-----------+-----------+-------------+---------+---------+---------+
|                         A|         0 |         0 |           6 |       0 | 
0 |       0 |
+--------------------------+-----------+-----------+-------------+---------+---------+---------+

-- 
Булычев Алексей
http://www.stella-npf.ru
"Dmitry Yemanov"




--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---

Ответить