ALTER PROCEDURE [dbo].[sp_remInformeComparativo]
	(
	@periodo int =0,
	@mes int = 0,
	@fichaI	int=0,
	@fichaF	int=999999999,
	@unineg int=0,
	@dep int=0,
	@activo int=0,
	@tipoconcepto varchar(1)='',
	@idconcepto int=0
	)
AS	


declare @date date

Declare @DayOfMonth TinyInt Set @DayOfMonth = 1
Declare @Month TinyInt Set @Month = @mes
Declare @Year Integer Set @Year = @periodo
-- ------------------------------------
Select @date = DateAdd(day, @DayOfMonth - 1, 
          DateAdd(month, @Month - 1, 
              DateAdd(Year, @Year-1900, 0)))



DECLARE @periodo1 INT ,@periodo2 INT ,@periodo3 INT ,@periodo4 INT, @periodo5 INT
DECLARE @mes1 INT ,@mes2 INT ,@mes3 INT ,@mes4 INT, @mes5 INT

select @periodo1=YEAR(DATEADD(MM, -5, @date)), @mes1=MONTH(DATEADD(MM, -5, @date))
select @periodo2=YEAR(DATEADD(MM, -4, @date)), @mes2=MONTH(DATEADD(MM, -4, @date))
select @periodo3=YEAR(DATEADD(MM, -3, @date)), @mes3=MONTH(DATEADD(MM, -3, @date))
select @periodo4=YEAR(DATEADD(MM, -2, @date)), @mes4=MONTH(DATEADD(MM, -2, @date))
select @periodo5=YEAR(DATEADD(MM, -1, @date)), @mes5=MONTH(DATEADD(MM, -1, @date))

--select @periodo1  ,@periodo2  ,@periodo3  ,@periodo4 , @periodo5
--select @mes1  ,@mes2  ,@mes3  ,@mes4 , @mes5

--DROP TABLE #FICHAS

SELECT     T.ficha,periodo,mes
INTO #FICHAS
FROM            remTrabajadores T
WHERE  (T.periodo IN(@periodo1,@periodo2,@periodo3,@periodo4,@periodo5,@periodo)) AND (T.mes IN(@mes1,@mes2,@mes3,@mes4,@mes5,@mes))
AND (T.ficha between @fichaI AND @fichaF)
AND (T.unidadNegocios=@unineg or @unineg=0)	
AND (@activo=0 OR T.activo=@activo)
AND (@dep=0 OR T.departamento=@dep)

--DROP TABLE #A

SELECT ficha,[dbo].[remValorConcepto](@periodo1,@mes1,ficha,'R',@idconcepto) as col1,0 AS col2,0 as col3, 0 as col4, 0 AS col5,0 as col6
INTO #A
FROM            remTrabajadores T
WHERE  (T.periodo=@periodo1) AND (T.mes=@mes1)
AND (T.ficha between @fichaI AND @fichaF)
AND (T.unidadNegocios=@unineg or @unineg=0)	
AND (@activo=0 OR T.activo=@activo)
AND (@dep=0 OR T.departamento=@dep)

UNION ALL

SELECT ficha,0 as col1,[dbo].[remValorConcepto](@periodo2,@mes2,ficha,'R',@idconcepto) AS col2,0 as col3, 0 as col4, 0 AS col5,0 as col6
FROM            remTrabajadores T
WHERE  (T.periodo=@periodo2) AND (T.mes=@mes2)
AND (T.ficha between @fichaI AND @fichaF)
AND (T.unidadNegocios=@unineg or @unineg=0)	
AND (@activo=0 OR T.activo=@activo)
AND (@dep=0 OR T.departamento=@dep)

UNION ALL

SELECT ficha,0 as col1,0 AS col2,[dbo].[remValorConcepto](@periodo3,@mes3,ficha,'R',@idconcepto) as col3, 0 as col4, 0 AS col5,0 as col6
FROM            remTrabajadores T
WHERE  (T.periodo=@periodo3) AND (T.mes=@mes3)
AND (T.ficha between @fichaI AND @fichaF)
AND (T.unidadNegocios=@unineg or @unineg=0)	
AND (@activo=0 OR T.activo=@activo)
AND (@dep=0 OR T.departamento=@dep)

UNION ALL

SELECT ficha,0 as col1,0 AS col2,0 as col3,[dbo].[remValorConcepto](@periodo4,@mes4,ficha,'R',@idconcepto) as col4, 0 AS col5,0 as col6
FROM            remTrabajadores T
WHERE  (T.periodo=@periodo4) AND (T.mes=@mes4)
AND (T.ficha between @fichaI AND @fichaF)
AND (T.unidadNegocios=@unineg or @unineg=0)	
AND (@activo=0 OR T.activo=@activo)
AND (@dep=0 OR T.departamento=@dep)

UNION ALL 

SELECT ficha,0 as col1,0 AS col2,0 as col3, 0 as col4, [dbo].[remValorConcepto](@periodo5,@mes5,ficha,'R',@idconcepto) AS col5,0 as col6
FROM            remTrabajadores T
WHERE  (T.periodo=@periodo5) AND (T.mes=@mes5)
AND (T.ficha between @fichaI AND @fichaF)
AND (T.unidadNegocios=@unineg or @unineg=0)	
AND (@activo=0 OR T.activo=@activo)
AND (@dep=0 OR T.departamento=@dep)

UNION ALL

SELECT ficha,0 as col1,0 AS col2,0 as col3, 0 as col4, 0 AS col5,[dbo].[remValorConcepto](@periodo,@mes,ficha,'R',@idconcepto) as col6
FROM            remTrabajadores T
WHERE  (T.periodo=@periodo) AND (T.mes=@mes)
AND (T.ficha between @fichaI AND @fichaF)
AND (T.unidadNegocios=@unineg or @unineg=0)	
AND (@activo=0 OR T.activo=@activo)
AND (@dep=0 OR T.departamento=@dep)



--DROP TABLE #TRABAJADORES

SELECT ficha,
@periodo1 as P1,@mes1 AS M1,sum(col1) as V1,
@periodo2 as P2,@mes2 AS M2,sum(col2) as V2,
@periodo3 as P3,@mes3 AS M3,sum(col3) as V3,
@periodo4 as P4,@mes4 AS M4,sum(col4) as V4,
@periodo5 as P5,@mes5 AS M5,sum(col5) as V5,
@periodo as P6,@mes AS M6,sum(col6) as V6
INTO #TRABAJADORES
FROM #A
GROUP BY ficha


SELECT   #TRABAJADORES.*, 
(V1 + V2 + V3 + V4 + V5 + V6) / ((CASE WHEN V1 = 0 THEN 0 ELSE 1 END) + 
(CASE WHEN  V2 = 0 THEN 0 ELSE 1 END) + 
(CASE WHEN  V3 = 0 THEN 0 ELSE 1 END) +
(CASE WHEN  V4 = 0 THEN 0 ELSE 1 END) +
(CASE WHEN  V5 = 0 THEN 0 ELSE 1 END) +
(CASE WHEN  V6 = 0 THEN 0 ELSE 1 END) +
(CASE WHEN  V1+V2+V3+V4+V5+V6 = 0 THEN 1 ELSE 0 END) 
)
 as PROMEDIO,
T.rut, T.dv, T.extranjero, RTRIM(T.nombres) AS nombres, RTRIM(T.apePaterno) AS apePaterno, RTRIM(T.apeMaterno) 
                         AS apeMaterno,RTRIM(T.apePaterno) + ' ' + RTRIM(T.apeMaterno) 
                         + ' ' + RTRIM(T.nombres) AS nombrecompleto, remMovimientosRM.idConcepto,remConceptos.DESCRIPCION as nomconcepto,unidadnegocios as unineg,departamento as dep

FROM            remTrabajadores AS T INNER JOIN
                         remConceptos ON T.periodo = remConceptos.periodo AND T.mes = remConceptos.mes INNER JOIN
                         remMovimientosRM ON remConceptos.periodo = remMovimientosRM.periodo AND remConceptos.mes = remMovimientosRM.mes AND 
                         T.ficha = remMovimientosRM.ficha AND remConceptos.tipoConcepto = remMovimientosRM.tipoConcepto AND 
                         remConceptos.idConcepto = remMovimientosRM.idConcepto INNER JOIN
                     #TRABAJADORES ON T.ficha = #TRABAJADORES.ficha
WHERE   (remMovimientosRM.tipoConcepto=@tipoconcepto)
AND (@idconcepto=0 OR remConceptos.idConcepto=@idconcepto)
AND (@activo=0 OR T.activo=@activo)
GROUP BY #TRABAJADORES.ficha, #TRABAJADORES.P1, #TRABAJADORES.M1, #TRABAJADORES.V1, #TRABAJADORES.P2, #TRABAJADORES.M2, #TRABAJADORES.V2
, #TRABAJADORES.P3, #TRABAJADORES.M3, #TRABAJADORES.V3, #TRABAJADORES.P4, #TRABAJADORES.M4, #TRABAJADORES.V4
, #TRABAJADORES.P5, #TRABAJADORES.M5, #TRABAJADORES.V5, #TRABAJADORES.P6, #TRABAJADORES.M6, #TRABAJADORES.V6
, T.rut, T.dv, T.extranjero, T.nombres, T.apePaterno, T.apeMaterno, remMovimientosRM.idConcepto, remConceptos.descripcion
, T.unidadNegocios, T.departamento
--AND (T.periodo IN(@periodo1,@periodo2,@periodo3,@periodo4,@periodo5,@periodo)) AND (T.mes IN(@mes1,@mes2,@mes3,@mes4,@mes5,@mes)) --(T.periodo = @periodo) AND (T.mes = @mes)