Amigos, tengo una consulta una tabla temporal tiene las mismas operaciones que
una tabla normal??, ya que tengo una funcion en la que uso una tabla temporal,
realizo operaciones de insert pero no me funciona no se que estoy haciendo man
adjunto envio la funcin que estoy usando
CREATE OR REPLACE FUNCTION balanceMensual1(vagecod character varying, vfeccorte
date)
RETURNS refcursor AS
$BODY$
DECLARE
rBalMensual record;
cuenta record;
resultado refcursor;
BEGIN
create temporary table BalMes(asicuecod varchar(20),asideb numeric,asihab
numeric,enero numeric,febrero numeric,
marzo numeric,abril numeric,mayo numeric,junio numeric,julio
numeric,agosto numeric,septiembre numeric,
octubre numeric,noviembre numeric,diciembre numeric,grupo character
varying(1));
for rBalMensual in
select extract(MONTH from asifec) as
mes,asidet.asicuecod,sum(asidet.asideb) as asideb,sum(asidet.asihab) as
asihab,cuegrutip as grupo
FROM asicab,asidet,agencias,cuentagrupo
WHERE agencias.agecod=asicab.asiagecod
and asicab.asiagecod=asidet.asiagecod
and asicab.asidoc=asidet.asidoc
and asicab.asinum=asidet.asinum
and cuentagrupo.cuegrucod=substring(asidet.asicuecod,1,1)
and asifec<=vFecCorte
group by mes,asidet.asicuecod,cuegrutip
ORDER BY mes,asicuecod
LOOP
if rBalMensual.mes=1 then
--verifico si ya hay un registro con el codigo de la cuenta
contable en la tabla temporal
select into cuenta * from BalMes where
asicuecod=rBalMensual.asicuecod;
if NOT FOUND then
--Aqui esta el problema que cuando no encuantra un
registro con el codigo de la cuanta contable realizo un insert en la tabla
temporal, pero parece que nunca hace el insert ya que nunca encuentra nada en
la tabla osea siempre durante todo el loop ingresa aqui
insert into
BalMes(asicuecod,asideb,asihab,enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre,grupo)
values(rBalMensual.asicuecod,rBalMensual.asideb,rBalMensual.asihab,0,0,0,0,0,0,0,0,0,0,0,0,'A');
else
update balmes set
enero=rBalMensual.asideb-rBalMensual.asihab where
asicuecod=rBalMensual.asicuecod;
end if;
end if;
END LOOP;
open resultado for select * from balmes;
return resultado;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
_________________________________________________________________
Get 5 GB of storage with Windows Live Hotmail.
http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_5gb_112008