Hola de nuevo.
No quiero ser pesado, pero ya lo comenté en un post anterior. Se hace un procedimiento almacenado y se llama al mismo poniendo la where que se quiera, ya que puede ser invocado como una tabla o query. esta where puede ser montada 'al vuelo'.
Código SQL
[-]SET TERM ^ ;
CREATE OR ALTER PROCEDURE PRUEBA
returns (
idpresupuesto integer,
color integer)
as
declare variable widpresupuesto integer;
begin
widpresupuesto = -1000;
for
SELECT IDPRESUPUESTO FROM b_lineapresupuesto order by idpresupuesto
into :idpresupuesto
do
begin
if (widpresupuesto = idpresupuesto) then
begin
if (color = 1) then COLOR = 1;
else color = 0;
end
else
begin
if (color = 1) then COLOR = 0;
else color = 1;
end
widpresupuesto=idpresupuesto;
suspend;
end
end^
SET TERM ; ^
Llamadas
Código SQL
[-]
SELECT * from prueba WHERE IDPRESUPUESTO > 40
ó
SELECT * from prueba WHERE IDPRESUPUESTO >= 40 AND IDPRESUPUESTO <= 200
Espero que sea de utilidad.
Saludos
Aupa Casi, no desfallezcas ahora !!