From: | Alvaro Herrera <alvherre(at)surnet(dot)cl> |
---|---|
To: | Alejandro Romero Parra <aromero(at)etesa(dot)com(dot)mx> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Obteniendo informacion de 3 tablas en forma de columnas y no renglones. (Vista, Procedimiento Almacenado o consulta sencilla?). |
Date: | 2005-05-25 16:08:49 |
Message-ID: | 20050525160849.GB7563@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Tue, May 24, 2005 at 10:13:13AM -0500, Alejandro Romero Parra wrote:
Hola,
> Que mecanismo se puede utilizar para traer la informacion de la
> siguiente manera:
> [tabla traspuesta cuya definicion de columnas es variable]
Creo que lo que te convendria estudiar es si el modulo
contrib/tablefunc te sirve, particularmente la funcion crosstab() que
sirve para hacer trasposiciones de tablas.
> De lo poco que he visto en postgresql esto se podria realizar con un
> Store Procedure??, alguien ya ha implementado algo como esto?
Es posible. Pero no en PL/pgSQL. Puede que en PL/Perl puedas hacerlo
facilmente. Por otro lado, cualquiera sea el lenguaje en que lo hagas,
vas a necesitar definir el tipo de retorno exactamente _antes_ de
conocer los resultados de la consulta, por lo que es posible que sea
algo dificil hacer lo que quieres.
Pensandolo bien, creo que tendrias dos opciones:
1. hacer dos consultas, la primera para saber cuantas columnas tendra el
resultado y con eso construir la segunda consulta;
2. retornar los resultados en un array.
Lo segundo lo puedes hacer facilmente con PL/Perl, por ejemplo (sobre
todo si sabes programar en Perl ... )
--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"Tiene valor aquel que admite que es un cobarde" (Fernandel)
From | Date | Subject | |
---|---|---|---|
Next Message | Julio Rivero | 2005-05-25 16:15:52 | Ayuda sobre script & function |
Previous Message | Alexys Lozada | 2005-05-25 16:04:58 | Re: IPV6 o Local? |