Problema al ordenar una consulta

telemaco
04 de Marzo del 2005
Saludos a [email protected]
Vereis, estoy utilizando una base de datos access y quisiera saber si hay alguna manera de hacer esto...
Tengo una tabla donde guardo las ventas que se efectúan en la empresa. Necesito hacer una consulta que me diga la cantidad de artículos que he vendido por cada hora. Los campos que necesito son 'hora' y 'cantidad'. Ahora mi consulta es ésta:

select hour(hora), sum(cantidad) from ventas group by hour(hora)

El inconveniente es que la empresa es un bar y las ventas comienzan a las 9 de la mañana y terminan a las 3 de la madrugada.
Esta consulta la utilizo para mostrar un gráfico comparativo por horas y teniendo esta consulta, las primera filas van de las 0 a las 3 de la madrugada y luego salta a las 9 para seguir sucesivamente.
Lo que yo quiero conseguir es que el gráfico empeice a las 9 de la mañana y siga de ahí en adelante (cuando llegue a las 23 horas deberá pasar a las 0, 1, 2 y 3).
Cómo puedo hacer para que la consulta se ordene de esta manera??
Muchas gracias por cuestro tiempo

eddie_
04 de Marzo del 2005
Pregunta: El campo Hora solamente contiene la hora?

Supongamos por simplicidad que solo tienes la hora y que guardas la fecha en otro campo, de cualquier manera la solucion varia muy poco.

Create un nuevo campo 'Jornada' el cual almacena un codigo de la jornada de trabajo (la jornada es de 09:00AM a 03:00AM del dia siguiente).
Obviamente todos los insert que se realicen en una jornada deberian registrar el mismo codigo.

La consulta entonces para la jornada 5 quedaria:

select hour(hora), sum(cantidad)
from ventas
where jornada=5
group by hour(hora)
order by fecha, hour(hora)

Asi se listan primero los registros con jornada 5 de 09:00AM a 23:00PM y luego los registros con jornada 5 del dia siguiente, de 00:00AM a 03:00AM