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

select por meses y obtener el max de un dia

Estas en el tema de select por meses y obtener el max de un dia en el foro de Mysql en Foros del Web. Hola amgos tengo la siguiente tabla hecha en mysql tabla se llama mod1_eventos campos mod1_event_id, mod1_event_fecha, mod1_eventos.mod1_event_prioridad lo que quiero obtener es por ejmpl si ...
  #1 (permalink)  
Antiguo 07/09/2009, 16:26
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta select por meses y obtener el max de un dia

Hola amgos tengo la siguiente tabla hecha en mysql

tabla se llama mod1_eventos

campos

mod1_event_id,
mod1_event_fecha,
mod1_eventos.mod1_event_prioridad

lo que quiero obtener es por ejmpl si el usuario en un calendario oprima el mes 9 del año 2009

me pueda imprimir los eventos del mes por dia pero que me de el evento maximo del día
es decir digamos que tengo estos registros

1-2009-09-09-1
2-2009-09-09-3
3-2009-09-09-2
4-2009-09-10-1
5-2009-09-11-2
6-2009-09-11-1

lo que deseo es que me de este resultado:
2-2009-09-3
4-2009-10-1
5-2009-11-2

es decir que me de el id el año y la preoridad mas alta del día

quice hacerlo usando max pero el problema es que no puedo obtener el id

enontre un solucion aqui

http://foros.cristalab.com/consulta-...ados.--t57475/

este seria me codigo pero me gustaria saber si totalmente correcto o si con max hay solucion

Código:
$Tablasconsulta_sql = "SELECT mod1_event_id,mod1_event_fecha,mod1_event_prioridad,mod1_event_icono FROM (
	SELECT * FROM mod1_eventos WHERE MONTH(mod1_event_fecha)=$month and Year(mod1_event_fecha)=$year 
	ORDER BY mod1_event_prioridad DESC) AS EstadosOrdenado 
	GROUP BY mod1_event_fecha";
espero sus comentarios aqui encontre tambien algo parecido

http://www.forosdelweb.com/f21/mysql...-meses-195527/

saludos
__________________
gerardo
  #2 (permalink)  
Antiguo 08/09/2009, 04:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: select por meses y obtener el max de un dia

Código sql:
Ver original
  1. SELECT m11.mod1_event_id,
  2.              m11.mod1_event_fecha,
  3.              m11.mod1_event_prioridad,
  4.              m11.mod1_event_icono
  5. FROM mod1_eventos m11
  6.           INNER JOIN (SELECT m12.mod1_event_fecha,
  7.                                     MAX(m12.mod1_event_prioridad) AS MaxPrioridad
  8.                                FROM mod1_eventos m12
  9.                                WHERE MONTH(m12.mod1_event_fecha)=$month
  10.                                     AND YEAR(m12.mod1_event_fecha)=$year
  11.                                GROUP BY md12.mod1_event_fecha) Sbc
  12.          ON m11.mod1_event_prioridad = Sbc.MaxPrioridad
  13.               AND m11.mod1_event_fecha = Sbc.mod1_event_fecha;


Si hubiera dos con la misma prioridad, que esta sea la máxima, y la misma fecha, saldrian los dos....

Quim
  #3 (permalink)  
Antiguo 08/09/2009, 08:56
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Sonrisa Respuesta: select por meses y obtener el max de un dia

orale gracias
quimfv
__________________
gerardo
  #4 (permalink)  
Antiguo 08/09/2009, 09:31
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Respuesta: select por meses y obtener el max de un dia

una pregubta que etiquetas abres para
que el cofigo de ejemplo se vea como lo publicaste

saludos
__________________
gerardo
  #5 (permalink)  
Antiguo 08/09/2009, 09:52
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
De acuerdo Respuesta: select por meses y obtener el max de un dia

No quiero aprovechar de tu gentileza pero podrias explicarme el script ya me salio solo corregi un error en GROUP BY md12.mod1_event_fecha es GROUP BY m12.mod1_event_fecha

saludos y gracias


Cita:
Iniciado por quimfv Ver Mensaje
Código sql:
Ver original
  1. SELECT m11.mod1_event_id,
  2.              m11.mod1_event_fecha,
  3.              m11.mod1_event_prioridad,
  4.              m11.mod1_event_icono
  5. FROM mod1_eventos m11
  6.           INNER JOIN (SELECT m12.mod1_event_fecha,
  7.                                     MAX(m12.mod1_event_prioridad) AS MaxPrioridad
  8.                                FROM mod1_eventos m12
  9.                                WHERE MONTH(m12.mod1_event_fecha)=$month
  10.                                     AND YEAR(m12.mod1_event_fecha)=$year
  11.                                GROUP BY md12.mod1_event_fecha) Sbc
  12.          ON m11.mod1_event_prioridad = Sbc.MaxPrioridad
  13.               AND m11.mod1_event_fecha = Sbc.mod1_event_fecha;


Si hubiera dos con la misma prioridad, que esta sea la máxima, y la misma fecha, saldrian los dos....

Quim
__________________
gerardo
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 15:14.