>> именно от этого и колбасит. хочу потому чта
>
> Нафуя, скажи честно? Я не понимаю, что такой запрос должен вернуть.
чтобы не плодить однотипные процедуры, и не потерять эффективность
выполнения
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"
--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---