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

Ayuda con consulta

Estas en el tema de Ayuda con consulta en el foro de Mysql en Foros del Web. Quería pedir vuestra ayuda por el siguiente tema: Tengo una base de datos mysql donde recojo los datos diarios de temperaturas mínimas de algunas ciudades: ...
  #1 (permalink)  
Antiguo 24/08/2009, 07:47
 
Fecha de Ingreso: mayo-2004
Mensajes: 59
Antigüedad: 19 años, 11 meses
Puntos: 0
Ayuda con consulta

Quería pedir vuestra ayuda por el siguiente tema:

Tengo una base de datos mysql donde recojo los datos diarios de temperaturas mínimas de algunas ciudades:



Me gustaría saber cómo puedo hacer para que, a través de una consulta, se presenten los datos de la siguiente manera:



Gracias anticipadas.
  #2 (permalink)  
Antiguo 24/08/2009, 09:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta

Esto es algo que se suele hacer con programación, que es lo que te aconsejo que hagas, para lo que deberías pedir ayuda en el foro de tu programa. Si quieres obtener algo parecido con MySqL, puedes usar GROUP_CONCAT, aunque ya sé que no es lo mismo:
Código sql:
Ver original
  1. SELECT FECHA, GROUP_CONCAT( CAST( TMINIMA AS CHAR )
  2. ORDER BY LOCALIDAD DESC
  3. SEPARATOR '-' ) AS `MADRID-BARCELONA`
  4. FROM `tabla`
  5. GROUP BY FECHA
  6. ORDER BY FECHA
  #3 (permalink)  
Antiguo 24/08/2009, 09:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ayuda con consulta

Tal vez algo así:
Código SQL:
Ver original
  1. SELECT FECHA, T1.T_MINIMA 'MADRID', T2.T_MINIMA 'BARCELONA'
  2. FROM TABLA T1 INNER JOIN TABLA T2 USING(FECHA)
  3. WHERE T1.LOCALIDAD = 'MADRID' AND T2.LOCALIDAD = 'BARCELONA'
  4. ORDER BY FECHA
  5. GROUP BY FECHA;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 24/08/2009, 10:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta

La propuesta de gnzsoloyo funciona (cambia sólo las líneas 4 y 5 de orden). Y podrás hacer ese autojoin tantas veces cuantas localidades tengas. Saludos a ambos.
  #5 (permalink)  
Antiguo 24/08/2009, 14:11
 
Fecha de Ingreso: mayo-2004
Mensajes: 59
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Ayuda con consulta

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Tal vez algo así:
Código SQL:
Ver original
  1. SELECT FECHA, T1.T_MINIMA 'MADRID', T2.T_MINIMA 'BARCELONA'
  2. FROM TABLA T1 INNER JOIN TABLA T2 USING(FECHA)
  3. WHERE T1.LOCALIDAD = 'MADRID' AND T2.LOCALIDAD = 'BARCELONA'
  4. ORDER BY FECHA
  5. GROUP BY FECHA;

Me da error. Dice:
Código PHP:
#1052 - Column 'FECHA' in field list is ambiguous 
Este es el código de la consulta:

Código PHP:
SELECT FECHAT1.TMIN 'MADRID'T2.TMIN 'BARCELONA'
FROM tabla T1 INNER JOIN tabla T2 USING(FECHA)
WHERE T1.LOCALIDAD 'MADRID' AND T2.LOCALIDAD 'BARCELONA'
GROUP BY FECHA
ORDER BY FECHA 
Seguro que no me sale por alguna tontería.

Gracias por vuestra ayuda!
  #6 (permalink)  
Antiguo 24/08/2009, 14:37
Avatar de Anubis_Slash  
Fecha de Ingreso: mayo-2009
Ubicación: aqui y haya
Mensajes: 173
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: Ayuda con consulta

porque no le especificas de que tabla es el campo fecha para que no te marque eso, lo mas probable es que exista en las dos tablas

T1.FECHA

saludos
__________________
Bienvenidos los karmas.
Quejas, sugerencias o dudas, se awantan......
  #7 (permalink)  
Antiguo 24/08/2009, 18:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ayuda con consulta

Código sql:
Ver original
  1. SELECT T1.FECHA, T1.TMIN 'MADRID', T2.TMIN 'BARCELONA'
  2. FROM tabla T1 INNER JOIN tabla T2 USING(FECHA)
  3. WHERE T1.LOCALIDAD = 'MADRID' AND T2.LOCALIDAD = 'BARCELONA'
  4. GROUP BY T1.FECHA
  5. ORDER BY T1.FECHA
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 25/08/2009, 01:29
 
Fecha de Ingreso: mayo-2004
Mensajes: 59
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Ayuda con consulta

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código sql:
Ver original
  1. SELECT T1.FECHA, T1.TMIN 'MADRID', T2.TMIN 'BARCELONA'
  2. FROM tabla T1 INNER JOIN tabla T2 USING(FECHA)
  3. WHERE T1.LOCALIDAD = 'MADRID' AND T2.LOCALIDAD = 'BARCELONA'
  4. GROUP BY T1.FECHA
  5. ORDER BY T1.FECHA

Funciona perfecto. ¡Muchísimas gracias!
  #9 (permalink)  
Antiguo 25/08/2009, 05:00
 
Fecha de Ingreso: mayo-2004
Mensajes: 59
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Ayuda con consulta

Una cosita más:

¿Sería posible mostrar los datos en un rango determinado de fechas? Por ejemplo, entre el 1-1-2009 y el 3-1-2009?

¡Gracias!
  #10 (permalink)  
Antiguo 25/08/2009, 05:13
 
Fecha de Ingreso: mayo-2004
Mensajes: 59
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Ayuda con consulta

Cita:
Iniciado por ismapolo Ver Mensaje
Una cosita más:

¿Sería posible mostrar los datos en un rango determinado de fechas? Por ejemplo, entre el 1-1-2009 y el 3-1-2009?

¡Gracias!
Me respondo yo mismo:

Código PHP:
 SELECT T1.FECHAT1.TMINIMA 'MADRID'T2.TMINIMA 'BARCELONA'
FROM tabla T1
INNER JOIN tabla T2
USING 
FECHA )
WHERE T1.FECHA
BETWEEN 
'2009-01-01' AND '2009-01-03' AND T1.LOCALIDAD 'MADRID' AND T2.LOCALIDAD 'BARCELONA'
GROUP BY T1.FECHA
ORDER BY T1
.FECHA 
  #11 (permalink)  
Antiguo 26/08/2009, 15:00
 
Fecha de Ingreso: mayo-2004
Mensajes: 59
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Ayuda con consulta

Me las prometía muy felices con este tema, pero la consulta no deja de darme problemas.

En la lista de ciudades hay unas cuantas más aparte de las que he mostrado. Bueno, pues cuando trato de seleccionar los datos de otras ciudades hay algunas que no me aparecen, es decir, como si la consulta no se realizara. Por ejemplo: intento mostrar en la web los datos de Madrid y Barcelona para cualquier fecha y no hay problema. Intento hacer lo mismo con Bilbao y Sevilla y no me da resultado, y eso que en la base de datos sí figura esa información y phpmyadmin me da el resultado de la consulta sin problemas.

He realizado varias consultas con unas cuantas ciudades a través de la consola de phpmyadmin y no hay problema, pero luego en la web sólo aparecen datos cuando selecciono ciudades concretas.

No entiendo nada.

Gracias por vuestra ayuda.
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 23:19.