Cubo de análise de folha de pagamento

Pessoal, estamos retornando aos posts!

Estou disponibilizando uma SQL para utilizar nos cubos, para análise de folha de pagamento.

Espero que gostem.

Segue link abaixo para baixar

DOWNLOAD CUBO

/*
DESENVOLVIDO POR ALBERTO LIBÓRIO
TEL 12 98153-3003
*/
DECLARE @MESINI INT, @MESFIM INT, @ANOINI INT, @ANOFIM INT    

SET @MESINI = :MESINI_I  
SET @MESFIM = :MESFIM_I  
SET @ANOINI = :ANOINI_I  
SET @ANOFIM = :ANOFIM_I    

SELECT   
	PFUNC.CODCOLIGADA,   
	PFUNC.CODFILIAL,   
	PFUNC.PISPASEP,   
	PFUNC.CODSINDICATO,   
	PFUNC.CODBANCOPAGTO 'BANCO PAGAMENTO',   
	PFUNC.DIASUTEISMES 'DIAS UTEIS VT',   
	SECAOANT.SECAOANT 'COD.SEÇÃO MES COMPETÊNCIA',   
	SECAOANT.DESCSECAOANT 'DESC. SEÇÃO MES COMPETÊNCIA',   
	PFUNC.CHAPA,   
	PFUNC.NOME 'NOME DO FUNCIONÁRIO',   
	PFUNC.CODSITUACAO 'SITUAÇÃO',   
	PFUNC.CODSECAO 'CÓD. SEÇÃO',   
	PFUNC.SALARIO 'SALÁRIO',   
	PSECAO.DESCRICAO 'NOME SEÇÃO',   
	CASE     
		WHEN PFFINANC.MESCOMP = '1' THEN 'JANEIRO'    
		WHEN PFFINANC.MESCOMP = '2' THEN 'FEVEREIRO'    
		WHEN PFFINANC.MESCOMP = '3' THEN 'MARÇO'    
		WHEN PFFINANC.MESCOMP = '4' THEN 'ABRIL'    
		WHEN PFFINANC.MESCOMP = '5' THEN 'MAIO'    
		WHEN PFFINANC.MESCOMP = '6' THEN 'JUNHO'    
		WHEN PFFINANC.MESCOMP = '7' THEN 'JULHO'    
		WHEN PFFINANC.MESCOMP = '8' THEN 'AGOSTO'    
		WHEN PFFINANC.MESCOMP = '9' THEN 'SETEMBRO'    
		WHEN PFFINANC.MESCOMP = '10' THEN 'OUTUBRO'    
		WHEN PFFINANC.MESCOMP = '11' THEN 'NOVEMBRO'    
		WHEN PFFINANC.MESCOMP = '12' THEN 'DEZEMBRO'     
		END 'MES NOME',   
	PFFINANC.MESCOMP 'MES Nº',   
	PFFINANC.ANOCOMP 'ANO',   
	PFFINANC.NROPERIODO 'PERIODO',   
	PFFINANC.REF,   
	PPESSOA.CPF 'CPF',   
	PFFINANC.HORA/60+( (PFFINANC.HORA%60)/100)'HORA' ,   
	PEVENTO.CODIGO,   
	CASE     
		WHEN PEVENTO.PROVDESCBASE = 'P' THEN 'PROVENTO'    
		WHEN PEVENTO.PROVDESCBASE = 'D' THEN 'DESCONTO'    
		WHEN PEVENTO.PROVDESCBASE = 'B' THEN 'BASE DE CALCULO'   
	END PROVDESCBASE,   
	PTPFUNC.DESCRICAO 'TIPO FUNCIONARIO',   
	PCODSITUACAO.DESCRICAO 'SITUACAO FUNCIONARIO',   
	PEVENTO.DESCRICAO 'EVENTO',   
	PRUBRICA.DESCRICAO 'RUBRICA',   
	PEVENTO.TOTALIZADOR,   
	PEVENTO.CODIGOCALCULO,   
	PFRATEIOTOMADOR.CODTOMADOR 'COD. TOMADOR',   
	FCFO.NOME 'TOMADOR',   
	PFUNC.CONTAPAGAMENTO 'CONTA',   
	PFUNC.CODAGENCIAPAGTO 'AGENCIA',   
	PFUNC.CODFUNCAO,   
	PFRATEIOTOMADOR.VALOR 'DIAS TOMADOR',   
	CASE    
		WHEN PEVENTO.PROVDESCBASE = 'P' THEN PFFINANC.VALOR    
		WHEN PEVENTO.PROVDESCBASE = 'D' THEN -PFFINANC.VALOR    
		WHEN PEVENTO.PROVDESCBASE = 'B' THEN PFFINANC.VALOR   
	END VALOR,   
	PFPERFF.BASEFGTS,   
	PFPERFF.BASEFGTS13,   
	PFPERFF.BASEINSS,   
	PFPERFF.BASEINSS13,   
	PFPERFF.BASEIRRF,   
	PEVENTO.INCIRRF,   
	PEVENTO.INCINSS,   
	PEVENTO.ESTINSS,   
	PEVENTO.ESTIRRF  
FROM   
	PFUNC (NOLOCK)   
	LEFT OUTER JOIN PTPFUNC (NOLOCK) ON    PFUNC.CODTIPO = PTPFUNC.CODCLIENTE   
	LEFT OUTER JOIN PCODSITUACAO (NOLOCK) ON    PFUNC.CODSITUACAO = PCODSITUACAO.CODCLIENTE   
	LEFT OUTER JOIN PSECAO (NOLOCK) ON    PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA AND    PFUNC.CODSECAO = PSECAO.CODIGO   
	LEFT OUTER JOIN PFFINANC (NOLOCK) ON    PFUNC.CODCOLIGADA = PFFINANC.CODCOLIGADA AND    PFUNC.CHAPA = PFFINANC.CHAPA   
	LEFT OUTER JOIN PEVENTO (NOLOCK) ON    PFFINANC.CODCOLIGADA = PEVENTO.CODCOLIGADA AND    PFFINANC.CODEVENTO = PEVENTO.CODIGO   
	LEFT OUTER JOIN PRUBRICA (NOLOCK) ON    PEVENTO.CODCOLIGADA = PRUBRICA.CODCOLIGADA AND    PEVENTO.CODRUBRICA = PRUBRICA.CODCLIENTE   
	LEFT OUTER JOIN PFRATEIOTOMADOR (NOLOCK) ON    PFUNC.CODCOLIGADA = PFRATEIOTOMADOR.CODCOLIGADA AND    PFUNC.CHAPA = PFRATEIOTOMADOR.CHAPA   
	LEFT OUTER JOIN PPESSOA (NOLOCK) ON    PFUNC.CODPESSOA = PPESSOA.CODIGO   
	LEFT OUTER JOIN FCFO (NOLOCK) ON    PFRATEIOTOMADOR.CODCOLIGADA = FCFO.CODCOLIGADA AND    PFRATEIOTOMADOR.CODTOMADOR = FCFO.CODCFO   
	LEFT OUTER JOIN PFPERFF (NOLOCK) ON    PFFINANC.CODCOLIGADA = PFPERFF.CODCOLIGADA AND    PFFINANC.CHAPA = PFPERFF.CHAPA AND    PFFINANC.MESCOMP = PFPERFF.MESCOMP AND    PFFINANC.ANOCOMP = PFPERFF.ANOCOMP AND    PFFINANC.NROPERIODO = PFPERFF.NROPERIODO   
	OUTER APPLY   
		(SELECT TOP 1  
			PFHSTSEC.CODSECAO 'SECAOANT',    
			PSECAOANT.DESCRICAO 'DESCSECAOANT'   
		FROM     
			PFHSTSEC (NOLOCK)    
			LEFT OUTER JOIN PSECAO PSECAOANT (NOLOCK) ON PFHSTSEC.CODCOLIGADA = PSECAOANT.CODCOLIGADA AND PFHSTSEC.CODSECAO = PSECAOANT.CODIGO   
		WHERE     
			PFHSTSEC.CODCOLIGADA = PFUNC.CODCOLIGADA AND     
			PFHSTSEC.CHAPA = PFUNC.CHAPA AND     
			YEAR(PFHSTSEC.DTMUDANCA)*100+MONTH(PFHSTSEC.DTMUDANCA)<=@ANOINI*100+@MESINI   
		ORDER BY    
			PFHSTSEC.DTMUDANCA DESC   )	SECAOANT  
		WHERE   
			PFFINANC.ANOCOMP >= @ANOINI AND   
			PFFINANC.ANOCOMP <= @ANOFIM AND   
			PFFINANC.MESCOMP >= @MESINI AND   
			PFFINANC.MESCOMP <= @MESFIM   

0 Comentários