Re: Intentando referencias cruzadas.

From: Pablo Braulio <brulics(at)gmail(dot)com>
To: Foro PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Intentando referencias cruzadas.
Date: 2008-11-19 08:59:20
Message-ID: 4923D568.4000902@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bueno, lo tengo medio solucionado.

He visto en la documentación las funciones de tablefunc y el uso de
crosstab.

He construido el siguiente query.

create view vista_prueba as
select e.nombre, e.apellidos, f.nombre as fichero, case when
fe.empleado=e.id and
fe.fichero=f.id then 'Si' else 'No' end as Acceso
from empleados e, ficheros f, ficheros_empleados fe;

Esto me devuelve la siguiente tabla:

SELECT * from vista_prueba ;
nombre | apellidos | fichero | acceso
- -----------+--------------+------------------+--------
MARIA | TIGRE | fichero de ... | No
MARIA | TIGRE | clientes | No
MANOLILLO | GAFOTAS | fichero de ... | No
MANOLILLO | GAFOTAS | clientes | Si
Manuel | Garcia Lopez | fichero de ... | No
Manuel | Garcia Lopez | clientes | No
(6 rows)

Luego con esto puedo ver los datos como quiero, mas o menos:

select *
from crosstab('select nombre::text, fichero::text, acceso::text from
vista_prueba where fichero is not null order by nombre')
as vista_prueba(nombre text, fichero de... text, clientes text);

nombre | fichero de ... | clientes
- -----------+----------------+----------
MANOLILLO | No | Si
Manuel | No | No
MARIA | No | No
(3 rows)

Podría agrupar los campos nombre y apellidos en la vista para que se
vean luego al usar crosstab.

El caso es que de este modo tengo que introducir manualmente el nombre
de los campos fichero de ... y clientes. Lo que quisiera es poder
sacarlos ya que son valores de la tabla ficheros.

¿Alguna idea?.
- --
Saludos cordiales.
Pablo.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkkj1WgACgkQK7lGsMchFsx2xwCfUeGTuy1tyegLt/tku26FMwYT
JeYAnA0bdKlM52Mds5L16bjDoa+FLfYJ
=/7Ob
-----END PGP SIGNATURE-----

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Chávez B. 2008-11-19 10:30:44 Re: [OT] Indices de redimiento
Previous Message Pablo Braulio 2008-11-19 07:55:47 Re: Intentando referencias cruzadas.