ALTER PROCEDURE [dbo].[ind_tiempoDuracionEstadoDOCXHistorico]

		@p_fecha_fh as smalldatetime = null,
		@p_fecha_fh_b as smalldatetime = null,
		@p_subtipodocumento as INT = 0,
		@p_tipodocumento as INT = 0,
		@p_tercero as INT = 0,		
		@p_estadoTipoDocumento as INT = 0,
		@p_prioridadDocumento as INT = 0,
		@p_eid varchar(100)
as
begin

	select estado1.estadotipodocumento as serie1,
	convert(varchar(7),estado1.fechacreacion,111) as periodo,
	isnull(AVG( convert(float,datediff(minute,estado1.fechacreacion,case	when  estado2.fechacreacion is NULL
			then getdate()

			else estado2.fechacreacion end)/60.0)),-1) as valor
	from (
		select
		doc_estadoTipoDocumento.estadoTipoDocumento,
		doc_documento_estadoTipoDocumento.fechacreacion,
		doc_documento.id,
		doc_estadoTipoDocumento.active,
		doc_documento.id_subtipodocumento,
		doc_documento.id_tercero_cliente,doc_documento.id_prioridaddocumento,doc_documento.id_estadotipodocumento,
		ROW_NUMBER() OVER(ORDER BY doc_documento_estadoTipoDocumento.id_documento, doc_documento_estadoTipoDocumento.fechacreacion ASC) as filap
		from doc_documento_estadoTipoDocumento 
		inner join 		[doc_documento] on [doc_documento].id = doc_documento_estadoTipoDocumento.id_documento 
		inner join		doc_subtipoDocumento on doc_subtipoDocumento.id=[doc_documento].id_subtipoDocumento
		inner join		doc_estadoTipoDocumento on doc_estadoTipoDocumento.id = doc_documento_estadoTipoDocumento.id_estadoTipoDocumento
		where doc_documento.id>0 and doc_documento.active=1
			and (@p_subtipodocumento=0 or [doc_documento].id_subtipodocumento = @p_subtipodocumento)
			and (@p_tipodocumento=0 or doc_subtipoDocumento.id_tipodocumento = @p_tipodocumento)
			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_estadoTipoDocumento=0 or [doc_documento].id_estadotipodocumento = @p_estadoTipoDocumento)
			and (@p_tercero=0 or [doc_documento].id_tercero_cliente = @p_tercero)
			and (@p_prioridadDocumento=0 or [doc_documento].id_prioridadDocumento = @p_prioridadDocumento)
		) as estado1
		left join 
				(

					select * from(
							select
							doc_estadoTipoDocumento.estadoTipoDocumento,
							doc_documento.id,
							doc_documento.id_tercero_cliente,doc_documento.id_prioridaddocumento,doc_documento.id_estadotipodocumento,
							doc_documento_estadoTipoDocumento.fechacreacion,
							ROW_NUMBER() OVER(ORDER BY doc_documento_estadoTipoDocumento.id_documento, doc_documento_estadoTipoDocumento.fechacreacion ASC) as fila
							from doc_documento_estadoTipoDocumento 
							inner join 		[doc_documento] on [doc_documento].id = doc_documento_estadoTipoDocumento.id_documento 
							inner join		doc_subtipoDocumento on doc_subtipoDocumento.id=[doc_documento].id_subtipoDocumento
							inner join		doc_estadoTipoDocumento on doc_estadoTipoDocumento.id = doc_documento_estadoTipoDocumento.id_estadoTipoDocumento
							where doc_documento.id>0 and doc_documento.active=1
								and (@p_subtipodocumento=0 or [doc_documento].id_subtipodocumento = @p_subtipodocumento)
								and (@p_tipodocumento=0 or doc_subtipoDocumento.id_tipodocumento = @p_tipodocumento)
								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_estadoTipoDocumento=0 or [doc_documento].id_estadotipodocumento = @p_estadoTipoDocumento)
								and (@p_tercero=0 or [doc_documento].id_tercero_cliente = @p_tercero)
								and (@p_prioridadDocumento=0 or [doc_documento].id_prioridadDocumento = @p_prioridadDocumento)
							) as temporal
							where fila>1

				)as estado2 on estado2.fila=estado1.filap+1 and estado2.id= estado1.id

		where estado1.active=1 --and fila is not null and filap is not null 


		group by estado1.estadotipodocumento,convert(varchar(7),estado1.fechacreacion,111) 

		order by convert(varchar(7),estado1.fechacreacion,111) 


------

	select estado1.estadotipodocumento as serie1,
	isnull(AVG( convert(float,datediff(minute,estado1.fechacreacion,case	when  estado2.fechacreacion is NULL
			then getdate()

			else estado2.fechacreacion end)/60.0)),-1) as valor
	from (
		select
		doc_estadoTipoDocumento.estadoTipoDocumento,
		doc_documento_estadoTipoDocumento.fechacreacion,
		doc_documento.id,
		doc_estadoTipoDocumento.active,
		doc_documento.id_subtipodocumento,
		doc_documento.id_tercero_cliente,doc_documento.id_prioridaddocumento,doc_documento.id_estadotipodocumento,
		ROW_NUMBER() OVER(ORDER BY doc_documento_estadoTipoDocumento.id_documento, doc_documento_estadoTipoDocumento.fechacreacion ASC) as filap
		from doc_documento_estadoTipoDocumento 
		inner join 		[doc_documento] on [doc_documento].id = doc_documento_estadoTipoDocumento.id_documento 
		inner join		doc_subtipoDocumento on doc_subtipoDocumento.id=[doc_documento].id_subtipoDocumento
		inner join		doc_estadoTipoDocumento on doc_estadoTipoDocumento.id = doc_documento_estadoTipoDocumento.id_estadoTipoDocumento
		where doc_documento.id>0 and doc_documento.active=1
			and (@p_subtipodocumento=0 or [doc_documento].id_subtipodocumento = @p_subtipodocumento)
			and (@p_tipodocumento=0 or doc_subtipoDocumento.id_tipodocumento = @p_tipodocumento)
			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_estadoTipoDocumento=0 or [doc_documento].id_estadotipodocumento = @p_estadoTipoDocumento)
			and (@p_tercero=0 or [doc_documento].id_tercero_cliente = @p_tercero)
			and (@p_prioridadDocumento=0 or [doc_documento].id_prioridadDocumento = @p_prioridadDocumento)
		) as estado1
		left join 
				(

					select * from(
							select
							doc_estadoTipoDocumento.estadoTipoDocumento,
							doc_documento.id,
							doc_documento_estadoTipoDocumento.fechacreacion,
							ROW_NUMBER() OVER(ORDER BY doc_documento_estadoTipoDocumento.id_documento, doc_documento_estadoTipoDocumento.fechacreacion ASC) as fila
							from doc_documento_estadoTipoDocumento 
							inner join 		[doc_documento] on [doc_documento].id = doc_documento_estadoTipoDocumento.id_documento 
							inner join		doc_subtipoDocumento on doc_subtipoDocumento.id=[doc_documento].id_subtipoDocumento
							inner join		doc_estadoTipoDocumento on doc_estadoTipoDocumento.id = doc_documento_estadoTipoDocumento.id_estadoTipoDocumento
							where doc_documento.id>0 and doc_documento.active=1
								and (@p_subtipodocumento=0 or [doc_documento].id_subtipodocumento = @p_subtipodocumento)
								and (@p_tipodocumento=0 or doc_subtipoDocumento.id_tipodocumento = @p_tipodocumento)
								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_estadoTipoDocumento=0 or [doc_documento].id_estadotipodocumento = @p_estadoTipoDocumento)
								and (@p_tercero=0 or [doc_documento].id_tercero_cliente = @p_tercero)
								and (@p_prioridadDocumento=0 or [doc_documento].id_prioridadDocumento = @p_prioridadDocumento)
							) as temporal
					where fila>1

				  )as estado2 on estado2.fila=estado1.filap+1 and estado2.id= estado1.id

		where estado1.active=1 --and fila is not null and filap is not null


		group by estado1.estadotipodocumento


select count(DOC.id) as total
from doc_documento DOC

	inner join doc_subtipoDocumento on doc_subtipoDocumento.id=DOC.id_subtipoDocumento
where DOC.active=1 
and (@p_subtipodocumento=0 or DOC.id_subtipodocumento = @p_subtipodocumento)
and (@p_tipodocumento=0 or doc_subtipoDocumento.id_tipodocumento = @p_tipodocumento)
and (@p_fecha_fh is null or DOC.fecha_fh >= @p_fecha_fh)
and (@p_fecha_fh_b is null or DOC.fecha_fh <= @p_fecha_fh_b)
and (@p_estadoTipoDocumento=0 or DOC.id_estadotipodocumento = @p_estadoTipoDocumento)
and (@p_tercero=0 or DOC.id_tercero_cliente = @p_tercero)
and (@p_prioridadDocumento=0 or DOC.id_prioridadDocumento = @p_prioridadDocumento)


end

print ('***********************fin repIndicadores ************************')
