
ALTER PROCEDURE [dbo].[ind_tiempoMedioFallasEquipo]
 		@p_equipo as INT = 0,
		@p_sucursal as INT = 0,
		@p_tercero as INT = 0,			
		@p_fecha_fh as smalldatetime = null,
		@p_fecha_fh_b as smalldatetime = null,
		@p_subtipodocumento as INT = 0,
		@p_eid varchar(100)
	
AS
BEGIN

select case when equ_equipo.equipo ='' then 'No hay Datos' else equ_equipo.equipo  end as serie1,
	convert(varchar(7),ort_reporteTecnico.fechaCreacion,111) as periodo,
	(select top 1 datediff(day,ort_reporteTecnico.fechaCreacion,r.fechaCreacion)
		 from dis_evento as r_f inner join 
			equ_trazabilidad on equ_trazabilidad.id_evento=r_f.id inner join
			ort_reporteTecnico as r on equ_trazabilidad.id_reporteTecnico=r.id 
		where dis_evento.id_falla=r_f.id_falla and dis_evento.id<>r_f.id and dis_evento.fechaCreacion<r_f.fechaCreacion
	) as valor
		
from dis_evento 	inner join
	equ_trazabilidad on equ_trazabilidad.id_evento=dis_evento.id inner join
	ort_reporteTecnico on equ_trazabilidad.id_reporteTecnico=ort_reporteTecnico.id inner join
	[doc_documento.ot] as ot on ot.id=equ_trazabilidad.[id_documento] inner join
			equ_equipo on equ_equipo.id= ot.id_equipo inner join
			equ_falla on equ_falla.id=dis_evento.id_falla inner join 
			ter_tercero on ter_tercero.id=equ_equipo.id_tercero inner join
			ter_sucursal on equ_equipo.id_sucursal=ter_sucursal.id inner join
			gen_zona on gen_zona.id=ter_tercero.id_zona inner join 
		
			doc_documento on ot.id=doc_documento.id inner join
			doc_subtipodocumento on  doc_subtipodocumento.id = doc_documento.id_subtipodocumento 

where (@p_tercero=0 or ter_tercero.id = @p_tercero)
		and (@p_equipo=0 or equ_equipo.id = @p_equipo)
		and (@p_sucursal=0 or ter_sucursal.id = @p_sucursal)
		and (@p_fecha_fh is null or doc_documento.fecha_fh >= @p_fecha_fh)
		and (@p_fecha_fh_b is null or doc_documento.fecha_fh <= @p_fecha_fh_b)
		and (@p_subtipodocumento=0 or doc_subtipodocumento.id = @p_subtipodocumento) 
		and	not (select top 1 r_f.id 
				from dis_evento as r_f 
				where dis_evento.id_falla=r_f.id_falla 
					and dis_evento.id<>r_f.id 
					and dis_evento.fechaCreacion<r_f.fechaCreacion) is null

group by equ_equipo.equipo,dis_evento.id_falla,dis_evento.id,
		dis_evento.fechaCreacion,ort_reporteTecnico.fechaCreacion,
		convert(varchar(7),ort_reporteTecnico.fechaCreacion,111)

order by convert(varchar(7),ort_reporteTecnico.fechaCreacion,111)

select case when equ_equipo.equipo ='' then 'No hay Datos' else equ_equipo.equipo  end as serie1,
	(select top 1 datediff(day,ort_reporteTecnico.fechaCreacion,r.fechaCreacion)
		 from dis_evento as r_f inner join 
			equ_trazabilidad on equ_trazabilidad.id_evento=r_f.id inner join
			ort_reporteTecnico as r on equ_trazabilidad.id_reporteTecnico=r.id 
		where dis_evento.id_falla=r_f.id_falla and dis_evento.id<>r_f.id and dis_evento.fechaCreacion<r_f.fechaCreacion
	) as valor
		
from dis_evento 	inner join
	equ_trazabilidad on equ_trazabilidad.id_evento=dis_evento.id inner join
	ort_reporteTecnico on equ_trazabilidad.id_reporteTecnico=ort_reporteTecnico.id inner join
	[doc_documento.ot] as ot on ot.id=equ_trazabilidad.[id_documento] inner join
			equ_equipo on equ_equipo.id= ot.id_equipo inner join
			equ_falla on equ_falla.id=dis_evento.id_falla inner join 
			ter_tercero on ter_tercero.id=equ_equipo.id_tercero inner join
			ter_sucursal on equ_equipo.id_sucursal=ter_sucursal.id inner join
			gen_zona on gen_zona.id=ter_tercero.id_zona inner join 
		
			doc_documento on ot.id=doc_documento.id inner join
			doc_subtipodocumento on  doc_subtipodocumento.id = doc_documento.id_subtipodocumento 

where (@p_tercero=0 or ter_tercero.id = @p_tercero)
		and (@p_equipo=0 or equ_equipo.id = @p_equipo)
		and (@p_sucursal=0 or ter_sucursal.id = @p_sucursal)
		and (@p_fecha_fh is null or doc_documento.fecha_fh >= @p_fecha_fh)
		and (@p_fecha_fh_b is null or doc_documento.fecha_fh <= @p_fecha_fh_b)
		and	(@p_subtipodocumento=0 or doc_subtipodocumento.id = @p_subtipodocumento)
			and	not (select top 1 r_f.id 
				from dis_evento as r_f 
				where dis_evento.id_falla=r_f.id_falla 
					and dis_evento.id<>r_f.id 
					and dis_evento.fechaCreacion<r_f.fechaCreacion) is null
group by equ_equipo.equipo,dis_evento.id_falla,dis_evento.id,
		dis_evento.fechaCreacion,ort_reporteTecnico.fechaCreacion
		



declare @tmp table(valor float)
insert into @tmp (valor)
(select 
	(select top 1 datediff(day,ort_reporteTecnico.fechaCreacion,r.fechaCreacion)
		 from dis_evento as r_f inner join 
			equ_trazabilidad on equ_trazabilidad.id_evento=r_f.id inner join
			ort_reporteTecnico as r on equ_trazabilidad.id_reporteTecnico=r.id 
		where dis_evento.id_falla=r_f.id_falla and dis_evento.id<>r_f.id and dis_evento.fechaCreacion<r_f.fechaCreacion
	) as total
		
from dis_evento 	inner join
	equ_trazabilidad on equ_trazabilidad.id_evento=dis_evento.id inner join
	ort_reporteTecnico on equ_trazabilidad.id_reporteTecnico=ort_reporteTecnico.id inner join
	[doc_documento.ot] as ot on ot.id=equ_trazabilidad.[id_documento] inner join
	equ_falla on equ_falla.id=dis_evento.id_falla inner join
	equ_equipo on dis_evento.id_equipo=equ_equipo.id inner join
			ter_tercero on ter_tercero.id=equ_equipo.id_tercero inner join
			ter_sucursal on equ_equipo.id_sucursal=ter_sucursal.id inner join
			gen_zona on gen_zona.id=ter_tercero.id_zona inner join 
		
			doc_documento on ot.id=doc_documento.id inner join
			doc_subtipodocumento on  doc_subtipodocumento.id = doc_documento.id_subtipodocumento 

where (@p_tercero=0 or ter_tercero.id = @p_tercero)
		and (@p_equipo=0 or equ_equipo.id = @p_equipo)
		and (@p_sucursal=0 or ter_sucursal.id = @p_sucursal)
		and (@p_fecha_fh is null or doc_documento.fecha_fh >= @p_fecha_fh)
		and (@p_fecha_fh_b is null or doc_documento.fecha_fh <= @p_fecha_fh_b) and
			(@p_subtipodocumento=0 or doc_subtipodocumento.id = @p_subtipodocumento)
		and	not (select top 1 r_f.id 
				from dis_evento as r_f 
				where dis_evento.id_falla=r_f.id_falla 
					and dis_evento.id<>r_f.id 
					and dis_evento.fechaCreacion<r_f.fechaCreacion) is null	

)

select sum(valor) as total from @tmp

END



