From: | José Fermín Francisco Ferreras <josefermin54(at)hotmail(dot)com> |
---|---|
To: | <asotolongo(at)uci(dot)cu> |
Cc: | Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Tabla cliente y dividirla por sexo |
Date: | 2012-07-23 00:42:40 |
Message-ID: | BAY169-W9DDBBB2E40577CA5AA773C6DD0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gracias a Anthony y a Armando por sus respuestas!!
Estuve probando la opcion de usar WITH y los resultados no me lo da como requiero.El resultado es de esta manera:
with Va as (SELECT nombres||' '||apellidos AS "varones"FROM clienteWHERE sexo='M'),He as (SELECT nombres||' '||apellidos AS "hembras"FROM clienteWHERE sexo='F' )select Va.varones, He.hembras from Va,He
Varones HembrasMICHAEL JORDAN MARIA SHARAPOVAMICHAEL JORDAN ANNA KOURNIKOVAALBERT PUJOLS MARIA SHARAPOVA"ALBERT PUJOLS ANNA KOURNIKOVA"MIKE TYSON MARIA SHARAPOVA"MIKE TYSON ANNA KOURNIKOVA"
En verdad nunca había utilizado la instrucción with.
La parte final la modifiqué de la siguiente manera:
select va.varones, he.hembras from Va full outer join He on (va.codigo=he.codigo);
Pero el resultado tampoco es el esperado:
Varones HembrasMICHAEL JORDANALBERT PUJOLSMIKE TYSON
ANNA KOURNIKOVA MARIA SHARAPOVA
Se necesita que salga de esta manera:
Varones HembrasMICHAEL JORDAN ANNA KOURNIKOVAALBERT PUJOLS MARIA SHARAPOVAMIKE TYSON
Nota:Utilizo postgresql 9.1 en ubuntu 12.04
ing. José Fermín Francisco Ferreras
San Francisco de Macorís, Rep. Dom.
Date: Sun, 22 Jul 2012 12:48:43 -0400
From: asotolongo(at)uci(dot)cu
To: josefermin54(at)hotmail(dot)com
CC: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] Tabla cliente y dividirla por sexo
El 21/07/2012 12:52, José Fermín Francisco Ferreras escribió:
Hola a Todos!!
Tengo una tabla llamada cliente
create table cliente(
codigo serial primary key,
nombres varchar(100),
apellidos varchar(100),
sexo char(1)
)
y necesito presentar los datos de la siguiente manera:
Varones Hembras
Jose Lopez Maria Jimenez
Luis Agosto Carolina Disla
Domingo Almanzar
Juan Duran
osea los datos estan todos en una misma tabla y de manera desordenada y
se necesita presentarlo de la manera anterior.
Mi pregunta es:
Se puede trabajar este caso con cursores y tablas temporales o bien
podría hacerse con una consulta SQL, y cual es la manera más eficiente
de hacerlo de los dos casos??
ing. José Fermín Francisco Ferreras
San Francisco de Macorís, Rep. Dom.
Buenos días según entiendo necesitas los datos resultados en una misma
consulta ,si estas en una versión superior a 8,4 de postgresql puedes
utilizar las CTE con la clausula with
ejemplo
with Va as (SELECT nombres||' '||apellidos AS "varones"
FROM cliente
WHERE sexo='M'),
He as (SELECT nombres||' '||apellidos AS "hembras"
FROM cliente
WHERE sexo='F' )
select Va.varones, He.hembras from Va,He
saludos
From | Date | Subject | |
---|---|---|---|
Next Message | Andres A. Mamani | 2012-07-23 12:24:30 | Re: Ayuda con PgPool2 y funciones en pl/Pgsql |
Previous Message | Anthony | 2012-07-22 16:48:43 | Re: Tabla cliente y dividirla por sexo |