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
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 |