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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

Browse pgsql-es-ayuda by date

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