PHP - Informe - Suma de horas según mes - por usuario

   
Vista:

Informe - Suma de horas según mes - por usuario

Publicado por nekive (5 intervenciones) el 03/10/2014 20:47:06
Hola a todos:

Quisiera ver si me pueden ayudar con lo siguiente:

Tengo 2 tablas en mysql: usuariosy registros.
Cada tabla tiene distinta información:

usuarios
---------
id
nombre
apellido
email
departamento

registros
-----------
r_id
r_nombre
r_departamento
r_fecha [formato dd/mm/yyyy]
r_total_horas [formato HH:MM]

La tabla registros se van llenando con información que se ingresa mediante un formulario.
Mi "problema" es que necesito generar un informe mensual.


Ejemplo tabla registros:


r_id --- r_nombre --- r_departamento --- r_fecha --- r_total_horas
----------------------------------------------------------------
1 ---- --Pedro ------- Entregas ----- 02/09/2014 ----- 05:00
2 ---- --Juan --------- Ventas -------- 12/09/2014 ----- 02:30
3 ----- -Pedro ------- Entregas ------ 15/09/2014 ----- 04:20
4 ---- --Esteban ---- Reparación -- 05/10/2014 ----- 06:00
5 ----- -Pedro ------- Entregas ------ 20/10/2014 ----- 04:20

El informe que necesito [Mes de Septiembre]:

Nombre ----- la suma de "r_total_horas" en el mes según "r_fecha" \
------------------------------------------SUMA DE HORAS SEPTIEMBRE-------
Pedro ------ 09:20
Juan -------- 02:30

Así según el mes [dado en "r_fecha"]....


Individualmente y sin verificar el mes puedo calcular la cantidad de horas mediante el siguiente código, pero la idea es hacerlo en total por mes y en una sola tabla para presentarla en el navegador.

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$result = mysql_query("SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(r_total_horas))) TotalHoras FROM registros WHERE r_nombre='Pedro'");
if ($row = mysql_fetch_array($result)){
   echo "<table> \n";
   echo "<tr><td>Nombre</td><td>Candida de Horas</td></tr> \n";
   do {
      echo "<tr><td WIDTH=400>Pedro</td><td WIDTH=200>".$row["TotalHoras"]."</td></tr> \n";
   } while ($row = mysql_fetch_array($result));
   echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>


Cualquier ayuda es bienvenida.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Informe - Suma de horas según mes - por usuario

Publicado por Gonzalo (338 intervenciones) el 04/10/2014 06:38:32
Necesitas como parametro el mes y el año del que se trate, opcional el numero del empleado si es que solo necesitas 1.


"SELECT
r_nombre,
SEC_TO_TIME(SUM(TIME_TO_SEC(r_total_horas))) TotalHoras
FROM registros
WHERE year(r_fecha)='$Year'
and month(r_fecha)='$Mes'
group by r_nombre
order by r_nombre";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Informe - Suma de horas según mes - por usuario

Publicado por nekive (5 intervenciones) el 06/10/2014 18:22:12
Gonzalo:

La consulta me funciona si le quito los filtros de año y mes me entrega el nombre y las suma de las horas. El problema es en los filtros. Mi fecha esta en formato DD/MM/YYYY por lo que no me filtra ni el mes ni el año (en formato YYYY-MM-DD si resulta).

No se como podría hacer para tranformar la hora y hacer la consulta. Estube leyendo y se puede concatenar pero te agradecería me pudiaras ayudar en ese tema.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar