buenas gente tengo en php un script que básicamente hace esto:
un array formado de los ids de una tabla de la base de datos,
luego saco la fecha menor y mayor registradas en esa misma tabla,
y por último tengo otro bucle de 24 ciclos (hora)
y hago esto
Código PHP:
//recorro cada código
for ($j=0; $j<$num; $j++ ){
//recorro las fechas
for($i=$desde;$i<=$hasta;$i = date("Y-m-d", strtotime($i ."+ 1 days"))){
//recorro cada hora
for ($t=0; $t<24; $t++ ){
...
//aca hago un consulta tipo:
SELECT algo
FROM algunaTabla
WHERE cod='$coidgo' AND
fecha BETWEEN concat('$i','$horainicio')
AND concat('$i','$horafin')
...
}
}
}
y ese script sirve y todo PERO se demora como días en terminar porq son como 13000 registros, ergo 13000 accesos a la BD.
Entonces necesito que me ayuden si hay alguna forma de hacer eso mismo desde mysql (que no se mucho, solo lo basico), he leido algo de cursors y no se si por ahi es la cosa Y si va a dar mejor Rendimiento.
la tabla en cuestion tiene los registros mas o menos asi:
Código PHP:
Codigo|fecha|entrada|salida|
y debo generar una salida asi:
Código PHP:
date_format(t.fecha,'%d-%m-%Y') as FECHA,
date_format(t.fecha,'%H:00') as HORA,
Codigo|fecha|MIN(entrada)|MIN(salida)|AVG(entrada) | AVG(salida) |
MAX(entrada)|MAX(Salida) | hora |
cualquier sugerencia es bien recibida:
miren como se ve lo q genera php asi 'deberia' ser o algo parecido en mysql
[URL="http://awesomescreenshot.com/040d8so09"]http://awesomescreenshot.com/040d8so09[/URL]