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

Re: Mediante Funcion devolver Tabla

From: Gabriel Colina <colina_movil(at)yahoo(dot)com>
To: edwin gustavo enriquez arias <gustavo_enriquez_arias(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Mediante Funcion devolver Tabla
Date: 2007-03-01 02:42:53
Message-ID: 939291.25260.qm@web34713.mail.mud.yahoo.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
--- edwin gustavo enriquez arias
<gustavo_enriquez_arias(at)hotmail(dot)com> escribió:

> Holas amigos listeros, bueno he aquí nuevamente con
> la duda
> 
>  
> 
> Como puedo hacer para que por medio de una funcion
> pueda devolver una tabla
> con sus datos;
> 

Edwin, esta funcion es una de tantas que me devuelve
los datos, segun los parametros de id articulo, fecha
y local.
Te puse una sencilla y una compleja para que veas, aca
lo importante
es SETOF "central"."cficha_articulo", en este caso
cficha_artculo es una consulta de un esquema central,
podria ser una tabla tambien y debe contener todos los
campos que en la funcion se mencionen.

La simple trabaja con la misma consulta o tabla

CREATE OR REPLACE FUNCTION
"central"."fnc_ficha_articulo" (idart text, dfecha
date, nlocal integer) RETURNS SETOF
"central"."cficha_articulo" AS
$body$
SELECT * from central.cficha_articulo     
where id_articulo=idart and id_local=nlocal and
fecha >= dfecha
ORDER BY
cficha_articulo.id_articulo,cficha_articulo.fecha,cficha_articulo.id_lin;
$body$
LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY
INVOKER;

2 trabaja con unas consultas distintas a
central.cficha_articulo, pero devuelve los mismos
campos.

CREATE OR REPLACE FUNCTION
"central"."fnc_ficha_articulo" (idart text, dfecha
date, nlocal integer) RETURNS SETOF
"central"."cficha_articulo" AS
$body$
SELECT cmovimientos_stock.id_local,
cmovimientos_stock.sucursal,
cmovimientos_stock.id_lin,     
cmovimientos_stock.documento,
cmovimientos_stock.empresa, cmovimientos_stock.serie, 
   
cmovimientos_stock.numero, cmovimientos_stock.fecha,
cmovimientos_stock.id_articulo,     
cmovimientos_stock.entradas,
cmovimientos_stock.salidas,
(sum(cmovimientos_stock1.entradas) -     
sum(cmovimientos_stock1.salidas)) AS saldos     
FROM central.cmovimientos_stock,
central.cmovimientos_stock1     
WHERE (((cmovimientos_stock.fecha >
cmovimientos_stock1.fecha) AND     
((cmovimientos_stock.id_articulo)::text =
(cmovimientos_stock1.id_articulo)::text)) OR     
(((cmovimientos_stock.fecha =
cmovimientos_stock1.fecha) AND     
((cmovimientos_stock.id_articulo)::text =
(cmovimientos_stock1.id_articulo)::text)) AND     
(cmovimientos_stock.id_lin >=
cmovimientos_stock1.id_lin))) and
cmovimientos_stock.id_articulo = $1       and
cmovimientos_stock1.id_articulo = $1     
    and CASE WHEN $3 = 0 THEN
cmovimientos_stock.id_local >= $3     
    ELSE cmovimientos_stock.id_local = $3 END and CASE
WHEN $3 = 0 THEN cmovimientos_stock1.id_local >= $3   
 
ELSE cmovimientos_stock1.id_local = $3 END and
cmovimientos_stock.fecha >= $2     
GROUP BY cmovimientos_stock.id_local,
cmovimientos_stock.sucursal,
cmovimientos_stock.id_articulo,     
    cmovimientos_stock.id_lin,
cmovimientos_stock.documento,
cmovimientos_stock.empresa,     
    cmovimientos_stock.serie,
cmovimientos_stock.numero, cmovimientos_stock.fecha,
cmovimientos_stock.entradas,     
    cmovimientos_stock.salidas,
cmovimientos_stock.categoria_empresa     
ORDER BY cmovimientos_stock.id_articulo,
cmovimientos_stock.fecha, cmovimientos_stock.id_lin;
$body$
LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY
INVOKER;

Esperando te sirva y a las ordenes por cualquier
consulta.

Atte.
Gabriel Colina

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! 
Regístrate ya - http://correo.espanol.yahoo.com/ 

In response to

pgsql-es-ayuda by date

Next:From: Gabriel ColinaDate: 2007-03-01 02:47:07
Subject: Re: como retornar el resultado de la consulta
Previous:From: Gabriel ColinaDate: 2007-03-01 02:29:38
Subject: Re: DSN + DTS + PostgreSQL OT

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