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

Consulta DAY no muestra días recientes

Estas en el tema de Consulta DAY no muestra días recientes en el foro de Mysql en Foros del Web. Buen día, estoy haciendo una consulta con fechas pero tengo un problema, utilizo DAY(miTabla.CampoFecha) AS dia , los agrupo por día y los ordeno en ...
  #1 (permalink)  
Antiguo 04/08/2016, 09:26
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Consulta DAY no muestra días recientes

Buen día, estoy haciendo una consulta con fechas pero tengo un problema, utilizo DAY(miTabla.CampoFecha) AS dia, los agrupo por día y los ordeno en descendiente y me muestra solo registros a partir del 30 de julio para atrás, no me muestra del 31 a hoy.

Este es mi query, la verdad no entiendo que esta mal ¿algún comentario? Gracias por su tiempo.

Código SQL:
Ver original
  1. SELECT COUNT(DISTINCT messageTable.id) AS atendidos, DAY(messageTable.datetime) AS dia
  2. FROM messageTable LEFT JOIN userTable
  3. ON messageTable.id = userTable.id
  4. WHERE userTable.roles LIKE 'OPERATOR'
  5. GROUP BY dia
  6. ORDER BY dia DESC LIMIT 7
  #2 (permalink)  
Antiguo 04/08/2016, 15:33
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: Consulta DAY no muestra días recientes

Hola tampon:

Hay varios detalles en tu consulta que pueden estar pasando:

1. Estás haciendo un LIMIT 7, lo cual indica que sólo te va a mostrar los primeros 7 días (o los últimos 7 días, ya que estás ordenando de manera descendente), quita la cláusula LIMIT y ejecuta la consulta para que te regrese TODOS los registros y verifica si están los registros "perdidos".

2. Es posible que NO EXISTA INFORMACIÓN PARA LAS FECHAS que mencionas... verifica que las condiciones no estén filtrando cosas que no deban.

y como recomendaciones adicionales.

--> No utilices la condición tipo LIKE si a final de cuentas NO VAS A HACER BÚSQUEDA DE PATRONES... tal como lo tienes es exactamente lo mismo que pongas

Código:
userTable.roles LIKE 'OPERATOR'
o que pongas

Código:
userTable.roles = 'OPERATOR'
Sin embargo la condición LIKE tiene un pésimo rendimiento mientras que la igualación está optimizada.

--> No utilices la palabra reservada AS para definir alias, es completamente inútil y está fuera del estándar desde hacer años.

Código MySQL:
Ver original
  1.    COUNT(DISTINCT messageTable.id) atendidos,
  2.    DAY(messageTable.datetime) dia
  3.    messageTable
  4. LEFT JOIN userTable ON messageTable.id = userTable.id
  5. WHERE userTable.roles = 'OPERATOR'

Si continuas con problemas postea algunos datos de ejemplo y dinos a partir de esos datos qué es lo que esperas obtener como salida.

Saludos
Leo.
  #3 (permalink)  
Antiguo 04/08/2016, 15:51
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Consulta DAY no muestra días recientes

Hola Leo, muchas gracias por tu respuesta.
Tienes razón corrí la consulta y no es necesario utilizar el LIKE. No se por que sigue sin mostrarme registros de algunas fechas, los registros si existen en la tabla, incluso intente con DATE_SUB pero igual omitió registros, me mostró me muestra los registros de esta semana excepto los del 1 de agosto, 30 y 28 de Julio, seguiré buscando que pasa, y si a alguien le ha sucedido algo igual no duden en comentar. Gracias.

Etiquetas: campo, day, fecha, muestra, query, registros, select
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 03:06.