| 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: | Whole Thread | Raw Message | 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? |