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

Funcion compleja

From: Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com>
To: pgsql-es postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Funcion compleja
Date: 2005-06-17 00:52:21
Message-ID: e9b17cde050616175273049582@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
HOla lista, tengo el siguiente problema, he definido un tipo:

CREATE TYPE "public"."ty_depreciacion" AS (
"nu_activo_fijo" varchar,
"nb_activo" VARCHAR,
"nu_componente" varchar,
"nb_componente" VARCHAR,
"va_cah" NUMERIC,
"fe_adquisicion" date,
"fe_capitalizacion" date,
"fe_entoper" date,
"nu_ano" integer,
"nu_mes" integer,
"va_dm" NUMERIC,
"va_da" numeric,
"ca_vurm" NUMERIC,
"va_vrm" numeric,
"va_vneto" NUMERIC,
"nu_comprobante" VARCHAR,
"nu_documento" integer
);

y una funcion que me retorne valores:


CREATE OR REPLACE FUNCTION compleja(emp integer, fil integer) returns setof 
ty_depreciacion AS $$
DECLARE
rs ty_depreciacion%rowtype;
recA RECORD;
BEGIN
FOR recA IN
select distinct min(contabilidad.refpahi.sq_serialcolumn::integer) As sq
from contabilidad.refpahi where id_estado='SA' and co_empresa=1 and 
co_filial=2
group by contabilidad.refpahi.nu_activo_fijo, contabilidad.refpahi.nu_parent
order by sq;
LOOP

---- En recA, almaceno un valor retornado en sq., la cual la utilizo en el 
siguiente query de la misma funcion.

select p.nu_activo_fijo, a.nb_activo as nb_act, p.nu_componente,
b.nb_activoas nb_comp,
c.va_cah, f.fe_adquisicion, f.fe_capitalizacion, f.fe_entoper, d.nu_ano , 
d.nu_mes,
d.va_dm, d.va_da, c.ca_vurm, d.va_vrm, d.va_vneto, d.nu_comprobante, 
d.nu_documento
from contabilidad.refpahi p, activos a, activos b, contabilidad.samadep c,
public.samafeac f, contabilidad.sahidep d Where p.id_estado ='SA' and
p.co_empresa =1 and p.co_filial = 2 and path ~ '' recA.sq '' || '*.*' 
--------------> aqui coloco lo que me retorne el primer query
and
a.nu_activo_fijo = p.nu_activo_fijo and B.nu_activo_fijo = p.nu_componenteand
c.co_empresa = p.co_empresa and c.co_filial = p.co_filial and
c.co_codigo = p.nu_componente and f.co_empresa = p.co_empresa and
f.co_filial = p.co_filial and f.nu_activo_fijo = p.nu_componente and
d.co_empresa = p.co_empresa and d.co_filial = p.co_filial and
d.co_codigo = p.nu_componente and d.nu_ano =2004 and d.nu_mes =01
order by path asc, nu_ano desc, nu_mes asc;
END LOOP;

RETURN next rs;
END;
$$ LANGUAGE plpgsql STRICT;


Lo que quiero es que en rs me retorne los datos de 2 query, pero no 
funciona, me dice :

cuando la ejecuto :

select * from compleja(1,2)

retorna el siguiente error:

ERROR: missing "LOOP" at end of SQL expression

Alguien me puede Ayudar, desde ya muchas gracias

cordialmante
Ing. Mario Soto

Responses

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2005-06-17 01:49:11
Subject: Re: Funcion compleja
Previous:From: ruben avilaDate: 2005-06-16 23:08:57
Subject: AYUDA GENERAR TXT EN PHP+POSTGRESQL

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