Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta sql

Estas en el tema de Consulta sql en el foro de Bases de Datos General en Foros del Web. Hola, quiero hacer una consulta a una sola tabla, que es la siguiente: Provincia | Nombre ====== ====== MAD______JUAN SAN______ROSA VLC______ROSA LOG______ROSA MAD______MARIO BAR______JESUS SEV______ANDY ...
  #1 (permalink)  
Antiguo 21/10/2009, 03:30
Avatar de arprielo  
Fecha de Ingreso: octubre-2007
Mensajes: 67
Antigüedad: 17 años, 1 mes
Puntos: 0
Consulta sql

Hola, quiero hacer una consulta a una sola tabla, que es la siguiente:

Provincia | Nombre
====== ======
MAD______JUAN
SAN______ROSA
VLC______ROSA
LOG______ROSA
MAD______MARIO
BAR______JESUS
SEV______ANDY
OVI______ANDY


Quisiera sacar este resultado:

MAD_______JUAN
VARIOS____ROSA
MAD_______MARIO
BAR_______JESUS
VARIOS____ANDY


Cuando se repita el nombre en varias provincias, se agrupa pero indicando en provicia "VARIOS". ¿Es posible?

SAludos,
__________________
Viva Linux! viva Ubuntu...!
  #2 (permalink)  
Antiguo 21/10/2009, 06:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Consulta sql

Me gusta rizar el rizo!!!!

TuTabla
Provincia:::::::Nombre
MAD:::::::JUAN
SAN:::::::ROSA
VLC:::::::ROSA
LOG:::::::ROSA
MAD:::::::MARIO
BAR:::::::JESUS
SEV:::::::ANDY
OVI:::::::ANDY
MAD:::::::JUAN

He supuesto que puede haber mas de un Juan en Madrid pero que si solo hay Juanes en Madrid quieres que diga Madrid no Varias...


Código sql:
Ver original
  1. SELECT Sbc1.Nombre,
  2.              IF(Sbc1.Provincias=1,Sbc2.Provincia,"Varias") AS Prov
  3. FROM (SELECT Sbc0.Nombre,
  4.                          COUNT(*) AS Provincias
  5.              FROM (SELECT TuTabla.Nombre,
  6.                                       TuTabla.Provincia
  7.                                FROM TuTabla
  8.                               GROUP BY TuTabla.Nombre,
  9.                                                 TuTabla.Provincia) AS Sbc0
  10.               GROUP BY Sbc0.Nombre) AS Sbc1
  11.         LEFT JOIN (SELECT TuTabla.Nombre, TuTabla.Provincia
  12.                            FROM TuTabla
  13.                            GROUP BY TuTabla.Nombre,
  14.                                              TuTabla.Provincia) AS Sbc2
  15.           ON Sbc1.Nombre = Sbc2.Nombre;

Creo que funciona.... analisis

Subconsulta 0 i 2

Código sql:
Ver original
  1. SELECT TuTabla.Nombre,
  2.              TuTabla.Provincia
  3.        FROM TuTabla
  4.        GROUP BY TuTabla.Nombre,
  5.                         TuTabla.Provincia

Unifica las repeticiones (los Juanes de Madrid se contaran como un solo Juan), nos dan parejas unicas de nombre y provincia.


Subconsulta 1


Código sql:
Ver original
  1. SELECT Sbc0.Nombre,
  2.              COUNT(*) AS Provincias
  3.      FROM (....) AS Sbc0
  4.      GROUP BY Sbc0.Nombre

Sobre la subconsulta 0 cuenta cuantas provincias hay por nombre....


Código sql:
Ver original
  1. SELECT Sbc1.Nombre,
  2.              IF(Sbc1.Provincias=1,Sbc2.Provincia,"Varias") AS Prov
  3. FROM (...(...) AS Sbc0....) AS Sbc1
  4.         LEFT JOIN (.....) AS Sbc2
  5.              ON Sbc1.Nombre = Sbc2.Nombre;

Se aplica el condicional en funcion del numero de provincias de cada nombre...

Quim
  #3 (permalink)  
Antiguo 09/02/2010, 10:12
Avatar de arprielo  
Fecha de Ingreso: octubre-2007
Mensajes: 67
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Consulta sql

SOLUCIONADO!!! Disculpa la tardanza.
__________________
Viva Linux! viva Ubuntu...!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:18.