Skip site navigation (1) Skip section navigation (2)

Consulta de como retornar un conjunto de resultados

From: "Fernando Aguada" <fernandoaguada(at)yahoo(dot)com(dot)ar>
To: "Postgresql-es-ayuda" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Consulta de como retornar un conjunto de resultados
Date: 2006-03-28 23:42:53
Message-ID: 002201c652c1$57d6d2a0$ca00a8c0@FERNANDOA (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Saludos a todos;

me encuentro realizando una funcion que debe realizar varios procesos, primero debo obtener un conjunto
de resultados (que ya lo hice y funciona) y luego volver a procesar este resultado y guardarlo en una
tabla o cursor (aqui el problema).
He estado revisando la lista y no encuentro ejemplos que me resulten claros para el tratamiento
de los cursores o tablas, como puedo meter el resultado en un cursor o tabla?
Para ser mas claro adjunto la primera parte --> 
(muchas gracias de antemano)


declare rbalagral balagral%ROWTYPE;
declare rcuentas   cuentas%ROWTYPE;
declare wcuenta    varchar;

begin
      ------
      -- Si Trae Arrastre
      ---   
      if parras=1 then
         for rbalagral in SELECT movimien.ccuen,movimien.cdeno,sum(movimien.cdebe-movimien.chabe)
         FROM movimien
                       WHERE cempre=pempre AND cperi=pperio AND cfech<pdefec   
                       AND ccuen>=pdecue AND ccuen<=phacue AND cmodo=2 
                       GROUP BY movimien.ccuen, movimien.cdeno
                       ORDER BY movimien.ccuen    
         loop

             if rbalagral.cdebe>=00 then 
                rbalagral.chabe:=00;
             else
                rbalagral.chabe:=rbalagral.cdebe;
                rbalagral.cdebe:=00;
             end if;

             wcuenta:=rtrim(rbalagral.ccuen,' ');
             wcuenta:=ltrim(wcuenta,' ');

             select * into rcuentas from cuentas where cuentas.ccuen=wcuenta and cuentas.cempre=pempre and cuentas.cperi=pperio;
             rbalagral.ccolu:=rcuentas.ccolu; 
             rbalagral.creng:=rcuentas.creng;
             rbalagral.csalt:=rcuentas.csalt;  

             return next rbalagral;
         end loop;

      end if;

      for rbalagral in SELECT movimien.ccuen,movimien.cdeno,sum(movimien.cdebe-movimien.chabe)
         FROM movimien
                       WHERE cempre=pempre AND cperi=pperio AND cfech>=pdefec AND cfech<=phafec   
                       AND ccuen>=pdecue AND ccuen<=phacue AND cmodo=2 
                       GROUP BY movimien.ccuen, movimien.cdeno
                       ORDER BY movimien.ccuen    
         loop

          if rbalagral.cdebe>=00 then 
             rbalagral.chabe:=00;
          else
             rbalagral.chabe:=rbalagral.cdebe;
             rbalagral.cdebe:=00;
          end if;

          wcuenta:=rtrim(rbalagral.ccuen,' ');
          wcuenta:=ltrim(wcuenta,' ');
 
          select * into rcuentas from cuentas where cuentas.ccuen=wcuenta and cuentas.cempre=pempre and cuentas.cperi=pperio;
          rbalagral.ccolu:=rcuentas.ccolu; 
          rbalagral.creng:=rcuentas.creng;
          rbalagral.csalt:=rcuentas.csalt;  
     
          return next rbalagral;
     end loop;

return;
end 

pgsql-es-ayuda by date

Next:From: Jaime CasanovaDate: 2006-03-29 04:29:39
Subject: Re: tipos de tablas e indices
Previous:From: MiguelDate: 2006-03-28 21:58:03
Subject: Re: - - Algo en el Logfile

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group