Comparar fechas y almacenar diferencia entre estas
Estaba realizando una base de datos que contiene ordenes de procesos para distintos equipos, ahora busco establecer el tiempo medio entre proceso TEP para ello cree una Consulta_TEPque explicare más adelante.
Lo primero es saber que es el TEP, es el tiempo que transcurre entre un evento y otro, en la imagen de a continuación se ve representado por la sigla MTBF para ello se debe compara la fecha de Ffin y Fin de un proceso con la Fini y Hini del próximo proceso. (solo considerando los procesos Clas = "C2")
Mi idea es que la consulta lo registre por equipo de la siguiente manera
Equipo Cantidad TEP TMEP
LHD 308 6 115 23
LHD 320 1 0 0
LHD 413 4 71 23,66
El TMEP es el Tiempo Promedio ente Procesos y se calcula así
TMEP : SiInm( ([Cantidad]<2),(0),([TEP]/([Cantidad]-1)) )
Mi idea es que para TEP también ocurra la condicionante de que si se encuentran menos de 2 datos se ocupe el valor 0.
Acá les dejo una BD la cual contiene los datos y las consultas a medias, la <strong style="line-height: 1.5em;">Consulta_TEP<em style="line-height: 1.5em;"> pide como entrada una fecha inicial y una final, la cuales pueden ser agregadas desde el formulario_total yo probé con Fini :05-05-2014 y Ffin: 11-05-2014
para tomar el total de datos.
http://www.filebig.net/files/y4rv7SkZte
como les decía anteriormente la idea del campo TEP tiene la siguiente lógica
desde Fini = xx-xx-xx, hasta Ffin = yy-yy-yy
if (cantidad <2)
TEP = 0
else
DifFecha = Busca la diferencia entre Ffin(n) y Fini(n+1)
TEP = TEP + DifFecha
Ejemplo ilustrativo:
Fini Fini(1) Ffin(1) Fini(2) Ffin(2) Fini(3) Ffin(3) Ffin
Otra aclaración, la Fini y Ffin que están en negrita en la linea de tiempo son las Fechas que indican el rango a comparar, la Fini(1) no sirve para la comparación, pero si Ffin(1), que el primer fragmento guardado es el entre Ffin(1) y Fini(2), luego entre Ffin(2) y Fini(3), el segmento entre Ffin(3) y Ffin tampoco sirve para la comparación. Bajo esta lógica solo se almacenan en TEP los intervalos subrayados :
Ffin(1) Fini(2)
Ffin(2) Fini(3)
No se si es conveniente hacerlo en un modulo de visual o si se puede lograr con consultas. Si la opción es visual no se como almacenar en variables los datos y como dejar fuera los intervalos que no necesito.
Otra idea es guardar en otra variable solo los intervalos los cuales supuestamente no me sirven y realizar los siguiente:
TEP = ( Ffin - Fini ) - ( Fini(1) - Fini ) - (Ffin - Ffin(3)) - Suma([Dur])
Esta segunda lógica seria mas sencilla para comparar mayor cantidad de datos ya que solo interesan 3 intervalos y Suma([Dur]) es fácil de calcular.
Cualquier ayuda sirve.