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

Consultar de lista de fechas en espera la fecha más proxima

Estas en el tema de Consultar de lista de fechas en espera la fecha más proxima en el foro de Mysql en Foros del Web. Hola necesito plantear una consulta para resolver una aplicación que me han pedido. Resulta que tengo estas filas en mi base de datos como ejemplo ...
  #1 (permalink)  
Antiguo 27/05/2010, 15:26
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 11 meses
Puntos: 2
Consultar de lista de fechas en espera la fecha más proxima

Hola necesito plantear una consulta para resolver una aplicación que me han pedido. Resulta que tengo estas filas en mi base de datos como ejemplo
Cita:
id_partida | nombre_tours | fecha_partida
___________________________________
1 | cusco2d | 2010-06-15
2 | cusco2d | 2010-07-15
3 | cusco2d | 2010-08-15
4 | cusco3d | 2010-09-15
5 | cusco3d | 2010-10-15
6 | cusco3d | 2010-11-15
Yo deseo seleccionar solo la fechas más proximas de partidas de cada tour según la fecha actual por ejemplo si la fecha actual sería 20-07-2010 los resultados serían:
cusco2d --> 2010-08-15
cusco3d --> 2010-09-15

Uso esta consulta para obtener los datos:
SELECT * FROM tours_partidas WHERE fecha_partida>=CURDATE() ORDER BY fecha_partida ASC

Pero si aplicariamos el mismo ejemplo de arriba me arrojaría
cusco2d --> 2010-08-15
cusco3d --> 2010-09-15
cusco3d --> 2010-10-15
cusco3d --> 2010-11-15

Estaba pensando en una subconsulta pero lei que MySQL no acepta subconsultas, de todas maneras no se como plantearme esa subconsulta, alguna sugerencia les agradeceré mucho, gracias

Aquí lo postie cuando el problema era php http://www.forosdelweb.com/f18/mostr...limite-810163/

Última edición por salvador86; 28/05/2010 a las 07:52
  #2 (permalink)  
Antiguo 27/05/2010, 15:45
Avatar de Flakiss  
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Consultar de lista de fechas en espera la fecha más proxima

Pero si aplicariamos el mismo ejemplo de arriba me arrojaría
cusco2d --> 2010-08-15
cusco3d --> 2010-09-15
cusco3d --> 2010-10-15
cusco3d --> 2010-11-15

----------------------------------------------------------
Estos valores te los devuelve en un arreglo??
si es asi no tienes para que hacer una subconsulta...
solo capturas la posicion [0] del arreglo y siempre te devolvera la fecha menor o la mas proxima a tu fecha. (cusco2d --> 2010-08-15)....
espero te sirva, pero yo lo veo asi y no esta complicado.
  #3 (permalink)  
Antiguo 27/05/2010, 16:04
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Consultar de lista de fechas en espera la fecha más proxima

Hola Flakiss gracias por tu respuesta pero yo no solo deseo un solo resultado si yo tuviera digamos 15 tours (cusco2d, cusco3d ... cusco15d) y a cada uno le ingreso la fecha de partida de todo el año según habria 180 filas (15 x 12), y mi consulta quiere seleccionar 15 filas es decir de cada tour su fecha de partida más próxima según la fecha actual
  #4 (permalink)  
Antiguo 27/05/2010, 16:28
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Consultar de lista de fechas en espera la fecha más proxima

si entendí bien solo te falta un limit.

Código MySQL:
Ver original
  1. tours_partidas
  2. WHERE fecha_partida>=CURDATE()
  3. ORDER BY fecha_partida ASC
Con esto solo te salen la del 08 y la del 09.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 28/05/2010, 08:32
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Consultar de lista de fechas en espera la fecha más proxima

Hola Huesos muchas gracias por tu respuesta, pero no es lo que deseo el LIMIT 2 lo que hace es devolverme los dos primeros registros de la consulta pero sin haber sido sometido a ninguna condición, porque mira si aplicaramos tu consulta con los valores que muestro en la tabla de arriba y la fecha sería la de hoy 28 de mayo con tu consulta me arrojaría:

cusco2d --> 2010-06-15
cusco2d --> 2010-07-15

y como te digo si tuviera 15 tours (cusco2d, cusco3d ... cusco15d) tu lógica sería LIMIT 15, bueno solo deseo que me arroje de cada tour su fecha más proxima, no los primeros registros de mi consulta, muchas gracias por su paciencia, ¿alguna sugerencia?
  #6 (permalink)  
Antiguo 29/05/2010, 04:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Consultar de lista de fechas en espera la fecha más proxima

en MysqL pueden usarse subconsultas, todo depende de la versión. Dinos cuál es la tuya. Pero prueba antes si quieres esto:

Código MySQL:
Ver original
  1. SELECT t1.tours_partidas, t1.fecha_partida FROM (SELECT tours_partidas, fecha_partida FROM
  2. tours_partidas
  3. WHERE fecha_partida>=CURDATE()
  4. ORDER BY tours_partidas, fecha_partida DESC)t1 GROUP BY tours_partidas
  #7 (permalink)  
Antiguo 31/05/2010, 08:27
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 11 meses
Puntos: 2
Respuesta: Consultar de lista de fechas en espera la fecha más proxima

Gracias Jurena, como no tengo instalado el MySQL en mi maquina no se que versión sino que lo subo directo a mi hosting, pero el código que me pasate esta ok solo le hice unas variaciones y aquí lo pongo muchas gracias por tu ayuda.
Código MySQL:
Ver original
  1. SELECT t1.nombre_tours, t1.fecha_partida FROM
  2. (SELECT nombre_tours, fecha_partida FROM tours_partidas WHERE fecha_partida>=CURDATE()
  3. ORDER BY nombre_tours, fecha_partida ASC)
  4. t1 GROUP BY nombre_tours

Etiquetas: consultar, espera, fechas, lista
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 13:40.