Re: Relacionar tablas cliente y telefono

From: Miguel Angel Hernandez Moreno <miguel(dot)hdz(dot)mrn(at)gmail(dot)com>
To: oscar arocha <arocha(dot)oscar(at)gmail(dot)com>
Cc: José Fermín Francisco Ferreras <josefermin54(at)hotmail(dot)com>, Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Relacionar tablas cliente y telefono
Date: 2012-11-09 17:45:12
Message-ID: CAGYOd3oRWHQ=OMxartV_WBNg+D=6Chc=jbqj-NOE1b0SZtn6Cg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Saludos Fermin

Mira aqui hay una consulta que te puede ayudar, pero la restriccion es que
cada persona tenga los 3 telefonos dados de alta.

Esta funcion la manejas con el CROSSTAB

-- Activar la funcion en postgres
create crosstab;

-- Consulta
SELECT c.nombre, crt.casa, crt.movil, crt.trabajo from
(SELECT * FROM crosstab( 'SELECT codigo_cliente, codigo_lugar , telefono
FROM telefono
order by codigo_cliente, codigo_lugar') AS ct
(id_cliente integer, casa integer, movil integer, trabajo integer) ) crt
inner join
cliente c
on crt.id_cliente=c.codigo_cliente;

El 9 de noviembre de 2012 10:58, oscar arocha <arocha(dot)oscar(at)gmail(dot)com>escribió:

> Saludos José, te comento que para poder visualizar la informacion de la
> manera que sedeas debes hacer una serie de subconsultas en en tu sentencia
> principal algo asi
>
> SELECT A.nombre,
> (SELECT telefono FROM Telefono FROM codigo_lugar = 1 AND codigo_cliente
> = A.codigo_cliente ) AS casa,
> (SELECT telefono FROM Telefono FROM codigo_lugar = 2 AND codigo_cliente
> = A.codigo_cliente ) AS movil,
> (SELECT telefono FROM Telefono FROM codigo_lugar = 3 AND codigo_cliente
> = A.codigo_cliente ) AS tbjo
> FROM cliente A
>
> Espero te pueda servir.
>
>
> El 9 de noviembre de 2012 12:13, José Fermín Francisco Ferreras <
> josefermin54(at)hotmail(dot)com> escribió:
>
> Buenos días!!
>>
>> Tengo 3 tablas (Cliente , Teléfono y Lugar)
>>
>> En la tabla cliente tengo 2 campos: Codigo_cliente y nombre
>> En la tabla de Telefono tengo 4 campos: codigo,codigo_cliente,telefono, y
>> codigo_lugar.
>> En la tabla de Lugar tengo 2 campos: codigo_lugar,descripcion.
>>
>> En la tabla de cliente tengo los siguientes datos:
>> *codigo_cliente Nombre*
>> 1 Fermin
>> 2 Miguelina
>>
>> En la tabla de Lugar tengo lo siguiente:
>> *Codigo_lugar descripcion*
>> 1 casa
>> 2 movil
>> 3 trabajo
>>
>> En la tabla de telefono tengo lo siguiente:
>>
>> *codigo codigo_cliente telefono codigo_lugar*
>> 1 1 1234568 1
>> 2 1 8558544 3
>> 3 1 8745352 2
>> 4 2 3645458 3
>> 5 2 7566414 2
>>
>>
>> Quisiera visualizar la informacion de la siguiente manera:
>>
>> *Nombre telefono_casa telefono_movil
>> telefono_trabajo*
>> Fermin 1234568 8745352
>> 8558544
>> Miguelina 7566414
>> 3645458
>>
>>
>> Se podrá mostrar la información de esta manera??
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ing. José Fermín Francisco Ferreras
>> San Francisco de Macorís, Rep. Dom.
>>
>
>
>
> --
> *Ing. Oscar Arocha*
> CIV: 208.476
> Linux User: 556027
> tlf: 58-416-4257379
> twitter: @ArochaOscar
>
>

--
ISC Miguel Angel Hernandez Moreno

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message José Fermín Francisco Ferreras 2012-11-09 19:16:19 RE: Relacionar tablas cliente y telefono
Previous Message oscar arocha 2012-11-09 16:58:27 Re: Relacionar tablas cliente y telefono