Sumar horas en una consulta

Tengo una tabla que registra los datos de equipos que están fuera de servicio, o en mantención, ya calcule las horas que están en mantención.

ej:CalcTiempo: Format(([FInicio]+[HInicio])-([FTermino]+[HTermino]),"Hora corta")

Pero necesito sumar las horas que esta en mantención en el mes transcurrido, osea sumar el total de horas

Ej: día uno(total horas día), necesito sumar día uno con día dos y así hasta el ultimo día del mes

En la consulta filtro el equipo y sus horas por día.

Ojala me haya hecho entender.

1 respuesta

Respuesta
1

Tienes que crear una consulta de datos agregados y emplear una función que te convierta los días que hay entre las fechas a horas y le sume las horas y minutos restantes.

Primero has de calcular las horas inactivo de cada día, y luego tienes que ejecutar la suma agregando en base a las fechas seleccionadas.

Por último, para la presentación necesitas la función que convierte los resultados en el formato que necesitas.
En este tema aporto una solución para lo que buscas: http://www.todoexpertos.com/mitodoexpertos/question/1mnkeabmiaw6e/sumar-campos-de-formato-hora-en-una-consulta

En este tema aporto una solución para lo que buscas:http://www.todoexpertos.com/mitodoexpertos/question/1mnkeabmiaw6e/sumar-campos-de-formato-hora-en-una-consulta

este link no me funciona, dice que no estoy autorizado a ver la pagina

Te pongo un resumen:

Lo que has de hacer es una consulta de datos agregados.
Si por ejemplo, la tabla HorasVuelo tiene los campos Id_Piloto, fecha, Origen, Destino, 
Horas, la consulta quedaría así:
SELECT Id_Piloto, Sum(Horas) as TotalHoras FROM HorasVuelo GROUP By Id_Piloto;
Has de tener en cuenta que a diferencia de Excel, si el total de horas es mayor de 24, 
Access incrementa la fecha y descuenta 24 horas por cada día agregado al resto, es 
decir, no te presenta 58:32:45 sino que te presenta 04/02/2014 10:32:45.
Para presentar más de 24 horas has de crear un módulo, y ahí poner la siguiente función:
Public Function FormatLongTime(Horas As Date) As String
Dim Seg As Integer
Dim Min As Integer
Dim Hor As Integer
Dim Día As Integer
Dim Ini As Date
Ini = DateSerial(1899, 12, 30)
Seg = Second(Horas)
Min = Minute(Horas)
Hor = Hour(Horas)
Día = Abs(DateDiff("d", Ini, Horas))
FormatLongTime = (Día * 24) + Hor & ":" & Min & ":" & Seg
End Function
En la consulta haces la llamada a la función, te quedaría como sigue:
SELECT Id_Piloto, FormatLongTime(Sum(Horas)) as TotalHoras 
FROM HorasVuelo 
GROUP By Id_Piloto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas