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

Browse pgsql-es-ayuda by date

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