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

Duda retorno valores de función

From: Rodrigo Ruiz <rruizf(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Duda retorno valores de función
Date: 2011-07-19 21:32:23
Message-ID: 4E25F7E7.7080104@gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Estimados,
saludos desde un desconsolado Chile luego de una dura derrota ante 
Venezuela en Copa América...

El problema es, tengo el siguiente panorama:

I. type valores_factura as (exento real, afecto real, neto real, iva 
real, total real, saldo real);
II. funcion calcula_valores(bigint) y que retorna un valores_factura.

Si ejecuto lo siguiente:

 > SELECT calcula_valores(15);
Esto me retorna un solo dato como array (digo como pues no se si es 
así), de la forma (1253.4, 2374, 3489...)

 > SELECT * FROM calcula_valores(15);
Esto me retorna los campos exento, afecto, neto... de forma separada.

Lo que yo necesito es:

 > SELECT f.*, calcula_valores(f.id) FROM factura f WHERE f.id = 15;

Y que el resultado fuera, todos los datos de la factura mas los datos 
que se calculan en la función, o sea que es resultado sea algo como: 
(id, fecha, rut, ..., exento, afecto, neto, ...), sin embargo el 
resultado obtenido es (id, fecha, rut, ..., (exento, afecto, neto, ...)) 
o sea que los cálculos los trae como un solo campo.

La función está definida de la siguiente manera:

CREATE OR REPLACE FUNCTION calcula_valores(factura_id BIGINT)
RETURNS valores_factura AS $$
DECLARE
     f RECORD;
     data calculo_factura;
     exento FLOAT;
     afecto FLOAT;
     neto FLOAT;
     viva FLOAT;
     total FLOAT;
     saldo FLOAT;
BEGIN
     -- Calculos varios
     SELECT d1,d2,d3,d4,d5,d6 INTO data;

     RETURN data;
END;
$$

Probé declarando la función con RETURNS SETOF valores_factura pero 
también me arrojaba errores, la verdad es que no manejo mucho el tema y 
finalmente recurro a Uds.

Pueden ayudarme a obtener los cálculos que hace la función como datos 
adicionales a la tabla 'factura'?

Gracias!

-- 
Rodrigo Ruiz Fuentes


pgsql-es-ayuda by date

Next:From: motum hesaDate: 2011-07-21 00:37:52
Subject: Ayuda Consulta de fechas
Previous:From: Jaime CasanovaDate: 2011-07-19 07:50:31
Subject: Re: Consulta de PostgreSQL

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