Consulta sql

En la siguiente consulta:
select caja, fecha, sum(monto)
from ....
group by caja, fecha
Tengo el siguiente problema:
Como las fechas que se encuentran en la BD tienen también horas, minutos y
segundos, no consigo agrupar los registros sólo por fecha.
Te agradecería me expliques como soluciono esto.

1 respuesta

Respuesta
1
Prueba:
SELECT caja, DATE(fecha), ...
GROUP BY caja, DATE(fecha)
Si tu versión de Mysql no soporta DATE puedes agrupar por el valor:
CONCAT(YEAR(fecha),'-', MONTH(fecha),'-', DATE(fecha))
Me doy cuenta que no me expliqué bien, en realidad esto lo quiero hacer en sql server.
Lo que había hecho fue:
convert(char(10), fa. Fecha, 103)
en el select y en el group by pero en el where estaba tratando de filtrar por un rango de fechas y esto me generaba error.
Ahora estoy tratando de filtrar el resultado en el having utilizando la misma expresión pero el filtro me lo hace como char, que me sugerís para solucionar este caso
Perdona por mi confusión en mi anterior respuesta. Estaba contestando a preguntas de MySQL y no me di cuenta de que la tuya era en SQL Server.
Un truco muy usado en convertir las fechas a cadenas en el formato yyyymmdd ya que con ese formato coinciden las comparaciones entre fechas y entre cadenas, es decir, así como el 13 de Enero de 1998 es anterior al 8 de agosto de 2001, la cadena '19980113' es menor que '20010808'.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas