CREATE OR REPLACE FUNCTION test(e_num integer)
  RETURNS integer AS
$BODY$
    DECLARE
        registro RECORD;
        registro_anterior RECORD;

    BEGIN
        registro_anterior:=NULL;
        FOR registro IN SELECT  num  , nombre FROM tabla  LOOP
            IF registro.num = e_num THEN
                IF registro_anterior IS NULL  THEN
                    RAISE NOTICE ' NO HAY ANTERIOR';
                    RETURN NULL;
                ELSE
RAISE NOTICE ' ANTERIOR ES %',registro_anterior.nombre;
                    RETURN registro_anterior.num;
                END IF;
            END IF;
            registro_anterior=registro;
         END LOOP;
        RAISE NOTICE ' NO ENCONTRADO';
        RETURN  NULL ;
    END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;


esta es la logica, no funciona bien la validación del primer registro. IF registro_anterior IS NULL THEN

El 28/01/2013 07:21 p.m., Roberto A. escribió:
Buenas a toda la comunidad.

Espero puedan ayudarme con un problema que me tiene ya varios dias sin poderlo resolver.

Tengo una funcion en la cual tengo un bucle for loop que recorrer una record y es aqui donde no se como hacer para que cuando dentro del for al encontrar un valor determinado acceda a los valores de record en una fila anterior.

ej:

el record tiene estas tabla cargada

num         |               nombre
1          |               infantil
6          |               juvenil
9          |               majores
13         |                libre

en la funcion tengo como paremetro el valor de la columna "num"
para este ejemplo pondre el 9 como parametro de entrada
al recorrer el record y se encuntre en la fila con num igual a 9 necesito capturar en una variable el valor de num pero de la fila anterio que en este caso seria 6 .

no se si existe alguna forma usando records para obtener este valor o tal vez existe otra forma de hacer esto

espero puedan ayudarme y de antemano gracias


Atte: Roberto A.





-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a