Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Numero de horas

Estas en el tema de Numero de horas en el foro de Bases de Datos General en Foros del Web. Hola chicos tengo la siguiente tabla Cliente-Dia-Inicio-Fin Inicio y Fin son datos tipo time Estoy tratando de obtener el total de horas por Dia (Lunes, ...
  #1 (permalink)  
Antiguo 21/08/2015, 10:37
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 8 meses
Puntos: 12
Numero de horas

Hola chicos tengo la siguiente tabla
Cliente-Dia-Inicio-Fin

Inicio y Fin son datos tipo time

Estoy tratando de obtener el total de horas por Dia (Lunes, Martes... etc) y por empleado

Hice esta consulta Para el Lunes
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.
Código SQL:
Ver original
  1. SELECT * FROM  horario WHERE  idempleado=%s AND dia=1

Pero no tengo idea de como obtener el total de horas ya agrupadas por día es decir

JuanPerez 10:00-12:00 Lunes (1)
JuanPerez 13:00-15:00 Lunes (1)

Serían 4 Hrs
Alguien me puede ayudar por favor

Última edición por gnzsoloyo; 21/08/2015 a las 10:49
  #2 (permalink)  
Antiguo 21/08/2015, 10:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Numero de horas

Siendo una consulta de MySQL:
1) Necesitas que las columnas sean TIME.
2) Tienes que usar una función te tiempo (TIMEDIFF())
3) Debes usar SUM() sobre la funcion de tiempo para obtener el total de hroas.
4) Debes agrupar por cliente y día (tiene que haber un campo de fecha), donde en la fecha le aplicas la función DAYOFWEEK()
Código MySQL:
Ver original
  1. SELECT idempelado, SUM(TIMEDIFF(fin, inicio))
  2. FROM  horario
  3. WHERE  idempleado=%s
  4. GROUP BY idempelado, DAYOFWEEK(fecha)

Por supuesto, estoy asumiendo que tienes la tabla correctamente diseñada... Cosa que no sé si es así.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/08/2015, 10:55
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 8 meses
Puntos: 12
Respuesta: Numero de horas

Por si alguien lo necesita buscando mas detenidamente encontré esto

Código MySQL:
Ver original
  1. SELECT  `idempleado` , SEC_TO_TIME( SUM( TIME_TO_SEC( TIMEDIFF(  `Fin` ,  `Inicio` ) ) ) ) TotalHoras
  2. FROM horario
  3. WHERE  `idempleado` =001
  4. AND dia =1

Con esta consulta sale el total ahora solo me falta mostrarlo en php

saludos

Última edición por gnzsoloyo; 21/08/2015 a las 11:05
  #4 (permalink)  
Antiguo 21/08/2015, 10:56
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 8 meses
Puntos: 12
Respuesta: Numero de horas

Gracias gnzsoloyo De tu hecho tu respuesta en otra pregunta me salvo


Etiquetas: horas, mysql, numero, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:04.