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-31 14:33:10
Message-ID: 003301c654d0$0a91dce0$ca00a8c0@FERNANDOA
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Pablo Abalos 2006-03-31 15:10:17 conexion postgres projecto glade
Previous Message Sebastián Villalba 2006-03-31 14:13:51 Re: generar un archivo plano a partir de una consulta especifica