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 <[email protected]>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 <
> [email protected]> 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

Responder a