set ANSI_NULLS ON
set QUOTED_IDENTIFIER OFF
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[fun_tiempoMedioFallas_m]') AND type in (N'FN'))
DROP FUNCTION [dbo].[fun_tiempoMedioFallas_m]
GO
CREATE function [dbo].[fun_tiempoMedioFallas_m](@p_idEquipo int, @p_eid int) returns float
as 
begin
declare @fechaActual as smalldatetime
declare @fechaAnterior as smalldatetime
declare @intervalos as int
declare @duracion as float
--cursor
declare cuTiempoMedioFallas cursor for
select fechaHoraInicio_ff
from  [view_dis_evento]
where [id_equipo]=@p_idEquipo and [view_dis_evento].eid like @p_eid+'%'
order by fechaHoraInicio_ff asc
set @intervalos= 0
set @duracion = 0
open cuTiempoMedioFallas
fetch next from cuTiempoMedioFallas into @fechaActual
while (@@fetch_status=0)
begin
if @intervalos > 0
begin
set @duracion = @duracion + datediff(mi, @fechaAnterior, @fechaActual)
set @fechaAnterior = @fechaActual
set @intervalos = @intervalos + 1
end
else
begin
set @intervalos = 1
set @fechaAnterior = @fechaActual
end
fetch next from cuTiempoMedioFallas into @fechaActual
end
close cuTiempoMedioFallas
DEALLOCATE cuTiempoMedioFallas
return case when (@intervalos-1) > 0 then (@duracion/(60*(@intervalos-1))) else 0 end
end