Página 1 de 1

Contar varias opciones con MySQL

NotaPublicado: 2012-05-04 09:23 @432
por rafilla
¿Qué tal? Espero me puedan ayudar.

Lo que pasa es que tengo una serie de usuarios con horarios de In Out b1, b2, y lunch, donde b1 y b2 es break1 y 2, respectivamente.

Necesito hacer un reporte donde muestre las comidas que se necesitan dependiendo si el usuario viene a trabajar o no, y dependiendo de la hora de lunch hago un count para saber cuántos habrá en cierto momento, para determinar si es breakfast, lunch o dinner, y también sacar totales por día y por semana.

Está es my query.

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
  1. "SELECT count(*) AS 'COUNT' FROM `test`.`schedule`  s where period_id = $curr_per
  2.                         and s.lunch is not null and (s.in not in ('VAC','PER','MED') AND s.in is not null) and week = $curr_week
  3.                         and time(s.lunch) between time('11:30') and time('13:30') and day_of_week = 'SUN';
  4.                                         "
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Como pueden ver aquí, sólo estoy contando los usuarios del día SUN, de la semana actual ($curr_week), a determinada hora del día.

Como son muchísimos horarios y días, no quiero hacer un query por cada día y horario, pero no sé cómo hacer un query principal y ya solamente de ahí utilizar variables para mostrarlo.

Esta es la tabla donde planeo mostrar los datos:Imagen


Espero haberme explicado y que me puedan ayudar, muchas gracias de antemano.

Re: Contar varias opciones con MySQL

NotaPublicado: 2012-05-05 15:09 @673
por explorer
Una opción sería hacer una consulta a la base de datos, filtrando por las fechas que te interesa, pero recogiendo todos los campos. Y luego, desde el programa, haces las sumas y conteos de las personas que hay en cada situación.

Re: Contar varias opciones con MySQL

NotaPublicado: 2012-05-15 09:52 @452
por rafilla
Exactamente eso hice :p

Agregándole esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
  1. SELECT id, day_of_week,
  2.                                 case
  3.                                 when s.lunch < '11:00' then 'Breakfast'
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Ya en el programa sumé las filas y columnas y con eso obtuve los totales. Gracias :)