Jump to content
Joel Friske

Power bi

Recommended Posts

Boa tarde.

Trabalho com dois tipos de ferramentas de BI aqui:  Power BI e BS BOARD.

Normalmente crio uma view com as informações de várias tabelas e a partir desta view crio o painel no power BI.

Um usuário avançado nosso utilizar o excel para extrair os dados e construir os resumos, depois importa os resumos para o power bi e faz o painel.

 

Share this post


Link to post
Share on other sites

Bom dia Omar!!

Estou fazendo um trabalho para a diretoria de RH para criar um painel no PB com dados do RM.

Conheço BI, mas estou aprendendo SQL e batendo cabeça com o RM, em achar as informações e tabelas.

Seria muito pedir alguns exemplos das suas consultas? Caso seja algo confidencial ou do seu trabalho pessoal foi entender a negativa.

Alias há algum ligar, manual, site, etc.. que documente as informações das tabelas do RM?

abraços!!

Edited by Mauricio Mello

Share this post


Link to post
Share on other sites

Bom dia.

Eu crio views no banco de dados e puxo destas views para o Power BI.

Alguns abaixo:

1. Absenteismo:

SELECT DISTINCT 
                      dbo.PFUNC.CODCOLIGADA, dbo.GCOLIGADA.NOME AS COLIGADA, dbo.PFUNC.NOME AS FUNCIONARIO, RIGHT(LEFT(dbo.PFUNC.CODSECAO, 6), 3) AS CODSECAO, 
                      dbo.PSECAO.DESCRICAO AS SECAO, dbo.PFFINANC.REF AS FALTAS, dbo.PFFINANC.MESCOMP AS MES, dbo.PFFINANC.ANOCOMP AS ANO, dbo.PFFINANC.DTPAGTO, 
                      UPPER(dbo.PSECAO.CIDADE) AS FILIAL, dbo.PFUNCAO.NOME AS FUNCAO
FROM         dbo.PFUNC WITH (NOLOCK) INNER JOIN
                      dbo.GCOLIGADA WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.GCOLIGADA.CODCOLIGADA INNER JOIN
                      dbo.GFILIAL WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.GFILIAL.CODCOLIGADA INNER JOIN
                      dbo.PSECAO WITH (NOLOCK) ON dbo.GFILIAL.CODCOLIGADA = dbo.PSECAO.CODCOLIGADA AND dbo.PFUNC.CODSECAO = dbo.PSECAO.CODIGO AND 
                      dbo.PFUNC.CODSECAO = dbo.PSECAO.CODIGO AND dbo.GFILIAL.CODFILIAL = dbo.PSECAO.CODFILIAL INNER JOIN
                      dbo.PFFINANC WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.PFFINANC.CODCOLIGADA AND dbo.PFUNC.CHAPA = dbo.PFFINANC.CHAPA INNER JOIN
                      dbo.PEVENTO WITH (NOLOCK) ON dbo.PFFINANC.CODEVENTO = dbo.PEVENTO.CODIGO INNER JOIN
                      dbo.PFUNCAO WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.PFUNCAO.CODCOLIGADA AND dbo.PFUNC.CODFUNCAO = dbo.PFUNCAO.CODIGO AND 
                      dbo.GCOLIGADA.CODCOLIGADA = dbo.PFUNCAO.CODCOLIGADA
WHERE     ( dbo.PEVENTO.CODIGOCALCULO = 8 )

2. Saida Funcionários:

SELECT     TOP (100) PERCENT dbo.GCOLIGADA.NOME AS COLIGADA, dbo.PSECAO.DESCRICAO AS SECAO, dbo.PFUNCAO.NOME AS FUNCAO, COUNT(dbo.PFUNC.CHAPA) 
                      AS QUANTIDADE_DEMISSOES, DATEPART(MM, dbo.PFUNC.DATADEMISSAO) AS MES, DATEPART(YEAR, dbo.PFUNC.DATADEMISSAO) AS ANO, 
                      dbo.PSECAO.CIDADE AS FILIAL, dbo.PFUNC.DATADEMISSAO, dbo.PFUNC.CODSECAO
FROM         dbo.PFUNC WITH (NOLOCK) INNER JOIN
                      dbo.GCOLIGADA WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.GCOLIGADA.CODCOLIGADA INNER JOIN
                      dbo.PSECAO WITH (NOLOCK) ON dbo.GCOLIGADA.CODCOLIGADA = dbo.PSECAO.CODCOLIGADA AND dbo.PFUNC.CODSECAO = dbo.PSECAO.CODIGO INNER JOIN
                      dbo.PFUNCAO WITH (NOLOCK) ON dbo.GCOLIGADA.CODCOLIGADA = dbo.PFUNCAO.CODCOLIGADA AND dbo.PFUNC.CODFUNCAO = dbo.PFUNCAO.CODIGO
WHERE     (dbo.PFUNC.DATADEMISSAO IS NOT NULL)
GROUP BY dbo.GCOLIGADA.NOME, dbo.PSECAO.DESCRICAO, dbo.PFUNCAO.NOME, DATEPART(MM, dbo.PFUNC.DATADEMISSAO), DATEPART(YEAR, 
                      dbo.PFUNC.DATADEMISSAO), dbo.PSECAO.CIDADE, dbo.PFUNC.DATADEMISSAO, dbo.PFUNC.CODSECAO
ORDER BY DATEPART(MONTH, dbo.PFUNC.DATADEMISSAO)

3. Entrada Funcionário:

SELECT     dbo.FN_FORMATAR_TEXTO(REPLACE(dbo.GCOLIGADA.NOME, '/', '')) AS COLIGADA, dbo.PFUNC.CODSECAO, dbo.PSECAO.DESCRICAO AS SECAO, 
                      dbo.PFUNCAO.NOME AS FUNCAO, COUNT(DISTINCT dbo.PFUNC.CHAPA) AS QUANTIDADE_ADMISSOES, DATEPART(MM, dbo.PFUNC.DATAADMISSAO) AS MES, 
                      DATEPART(YEAR, dbo.PFUNC.DATAADMISSAO) AS ANO, dbo.PSECAO.CIDADE AS FILIAL, dbo.PFUNC.DATAADMISSAO, dbo.GCOLIGADA.CODCOLIGADA
FROM         dbo.PFUNC WITH (NOLOCK) INNER JOIN
                      dbo.GCOLIGADA WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.GCOLIGADA.CODCOLIGADA INNER JOIN
                      dbo.PSECAO WITH (NOLOCK) ON dbo.GCOLIGADA.CODCOLIGADA = dbo.PSECAO.CODCOLIGADA AND dbo.PFUNC.CODSECAO = dbo.PSECAO.CODIGO INNER JOIN
                      dbo.PFUNCAO WITH (NOLOCK) ON dbo.PSECAO.CODCOLIGADA = dbo.PFUNCAO.CODCOLIGADA AND dbo.PFUNC.CODFUNCAO = dbo.PFUNCAO.CODIGO
GROUP BY dbo.GCOLIGADA.NOME, dbo.PFUNC.CODSECAO, dbo.PSECAO.DESCRICAO, dbo.PFUNCAO.NOME, DATEPART(MM, dbo.PFUNC.DATAADMISSAO), DATEPART(YEAR, 
                      dbo.PFUNC.DATAADMISSAO), dbo.PSECAO.CIDADE, dbo.PFUNC.DATAADMISSAO, dbo.GCOLIGADA.CODCOLIGADA

4. Folha Completa:

SELECT     dbo.GCOLIGADA.NOME AS COLIGADA, dbo.PFUNC.CODCOLIGADA, dbo.PFUNC.CHAPA, dbo.PFUNC.CODFILIAL, dbo.PFUNC.NOME AS NOMEFUNCIONARIO, 
                      dbo.PFUNC.SALARIO, RIGHT(LEFT(dbo.PFUNC.CODSECAO, 6), 3) AS CODSECAO, dbo.PFUNC.CODHORARIO, dbo.AHORARIO.DESCRICAO, 
                      dbo.PSECAO.DESCRICAO AS SECAO, dbo.PFUNC.CODSITUACAO, dbo.PFUNCAO.NOME AS FUNCAO, dbo.PEVENTO.PROVDESCBASE AS PDB, 
                      dbo.PEVENTO.DESCRICAO AS EVENTO, dbo.PFFINANC.ANOCOMP AS ANO, dbo.PFFINANC.MESCOMP AS MES, dbo.PFFINANC.HORA, dbo.PFFINANC.NROPERIODO, 
                      CASE WHEN PEVENTO.PROVDESCBASE = 'B' THEN PFFINANC.VALOR * 0 WHEN PEVENTO.PROVDESCBASE = 'D' THEN PFFINANC.VALOR * - 1 WHEN PEVENTO.PROVDESCBASE
                       = 'P' THEN PFFINANC.VALOR END AS VALOR, dbo.PFCOMPL.ADM, dbo.PFCOMPL.ADOB, dbo.PFFINANC.DTPAGTO, dbo.PSECAO.CIDADE AS FILIAL, 
                      dbo.PFFINANC.CODEVENTO
FROM         dbo.PEVENTO WITH (NOLOCK) INNER JOIN
                      dbo.PFFINANC WITH (NOLOCK) ON dbo.PEVENTO.CODCOLIGADA = dbo.PFFINANC.CODCOLIGADA AND 
                      dbo.PEVENTO.CODIGO = dbo.PFFINANC.CODEVENTO INNER JOIN
                      dbo.PFUNC WITH (NOLOCK) INNER JOIN
                      dbo.PSECAO WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.PSECAO.CODCOLIGADA AND dbo.PFUNC.CODSECAO = dbo.PSECAO.CODIGO INNER JOIN
                      dbo.PFUNCAO WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.PFUNCAO.CODCOLIGADA AND dbo.PFUNC.CODFUNCAO = dbo.PFUNCAO.CODIGO INNER JOIN
                      dbo.GCOLIGADA WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.GCOLIGADA.CODCOLIGADA AND 
                      dbo.PFUNCAO.CODCOLIGADA = dbo.GCOLIGADA.CODCOLIGADA AND dbo.PSECAO.CODCOLIGADA = dbo.GCOLIGADA.CODCOLIGADA ON 
                      dbo.PFFINANC.CODCOLIGADA = dbo.PFUNC.CODCOLIGADA AND dbo.PFFINANC.CHAPA = dbo.PFUNC.CHAPA AND 
                      dbo.PFFINANC.CODCOLIGADA = dbo.GCOLIGADA.CODCOLIGADA AND dbo.PEVENTO.CODCOLIGADA = dbo.GCOLIGADA.CODCOLIGADA INNER JOIN
                      dbo.AHORARIO WITH (NOLOCK) ON dbo.PFUNC.CODHORARIO = dbo.AHORARIO.CODIGO AND 
                      dbo.GCOLIGADA.CODCOLIGADA = dbo.AHORARIO.CODCOLIGADA INNER JOIN
                      dbo.PFCOMPL WITH (NOLOCK) ON dbo.PFUNC.CHAPA = dbo.PFCOMPL.CHAPA AND dbo.PFUNC.CODCOLIGADA = dbo.PFCOMPL.CODCOLIGADA
WHERE     (dbo.AHORARIO.CODCOLIGADA = dbo.AHORARIO.CODCOLIGADA) AND (dbo.PFFINANC.ANOCOMP >= 2015) AND (dbo.PEVENTO.PROVDESCBASE <> 'B')

5. Hora Extra:

SELECT DISTINCT 
                      dbo.GCOLIGADA.NOME AS COLIGADA, dbo.PFUNC.NOME AS FUNCIONARIO, RIGHT(LEFT(dbo.PFUNC.CODSECAO, 6), 3) AS CODSECAO, 
                      dbo.PSECAO.DESCRICAO AS SECAO, dbo.PFFINANC.REF AS EXTRA, dbo.PFFINANC.MESCOMP AS MES, dbo.PFFINANC.ANOCOMP AS ANO, dbo.PFFINANC.DTPAGTO, 
                      dbo.PSECAO.CIDADE AS FILIAL, dbo.PFUNCAO.NOME AS FUNCAO
FROM         dbo.PFUNC WITH (NOLOCK) INNER JOIN
                      dbo.GCOLIGADA WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.GCOLIGADA.CODCOLIGADA INNER JOIN
                      dbo.GFILIAL WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.GFILIAL.CODCOLIGADA INNER JOIN
                      dbo.PSECAO WITH (NOLOCK) ON dbo.GFILIAL.CODCOLIGADA = dbo.PSECAO.CODCOLIGADA AND dbo.PFUNC.CODSECAO = dbo.PSECAO.CODIGO AND 
                      dbo.PFUNC.CODSECAO = dbo.PSECAO.CODIGO AND dbo.GFILIAL.CODFILIAL = dbo.PSECAO.CODFILIAL INNER JOIN
                      dbo.PFFINANC WITH (NOLOCK) ON dbo.PFUNC.CODCOLIGADA = dbo.PFFINANC.CODCOLIGADA AND dbo.PFUNC.CHAPA = dbo.PFFINANC.CHAPA INNER JOIN
                      dbo.PEVENTO WITH (NOLOCK) ON dbo.PFFINANC.CODEVENTO = dbo.PEVENTO.CODIGO INNER JOIN
                      dbo.PFUNCAO ON dbo.PFUNC.CODCOLIGADA = dbo.PFUNCAO.CODCOLIGADA AND dbo.PFUNC.CODFUNCAO = dbo.PFUNCAO.CODIGO AND 
                      dbo.GCOLIGADA.CODCOLIGADA = dbo.PFUNCAO.CODCOLIGADA
WHERE     (dbo.PEVENTO.CODIGO = '0054') OR
                      (dbo.PEVENTO.CODIGO = '0055') OR
                      (dbo.PEVENTO.CODIGO = '0191') OR
                      (dbo.PEVENTO.CODIGO = '0372')

6. Faixas Salariais:

SELECT     TOP (100) PERCENT A.CHAPA, A.NOME, B.NOME AS funcao, A.SALARIO, CASE WHEN SALARIO < 1000 THEN '< 1000' WHEN SALARIO >= 1000 AND 
                      salario < 2000 THEN 'De 1000 a 2000' WHEN SALARIO >= 2000 AND salario < 3000 THEN 'De 2000 a 3000' WHEN SALARIO >= 3000 AND 
                      salario < 5000 THEN 'De 3000 a 5000' WHEN SALARIO >= 5000 AND salario < 10000 THEN 'De 5000 a 10000' ELSE '> 10000' END AS [Faixa Salarial]
FROM         dbo.PFUNC AS A INNER JOIN
                      dbo.PFUNCAO AS B ON A.CODCOLIGADA = B.CODCOLIGADA AND A.CODFUNCAO = B.CODIGO
WHERE     (A.CODSITUACAO <> 'D') AND (A.CODSITUACAO <> 'I')
ORDER BY A.SALARIO

Edited by omar
  • Thanks 1

Share this post


Link to post
Share on other sites

Omar, boa tarde!

Muito obrigado pelas dicas, vou começar a implementar já nessa semana, agradeço mesmo vai poupar um bom trabalho e vai servir de inspiração para outras views.

Ao passo que evoluir vou compartilhando com o forum.

 

abraços

  • Like 1

Share this post


Link to post
Share on other sites

Mauricio,

Boa tarde.

Tem uma forma de fazer o select direto no power bi sem criar a view no banco de dados:

image.png

Share this post


Link to post
Share on other sites

Mauricio.

Se tiver acesso ao Sistema, você pode clicar no botão direito , marcar visualizar nome dos campos e passar o mouse encima de cada campo que precisar, irá mostrar a TABELA.CAMPO.

 

 

Share this post


Link to post
Share on other sites

O engraçado é que o cara que iniciou este post, sumiu, nem respondeu mais nada depois de iniciadas respostas, ajuda, etc. Mas o bom do fórum é isso, o assunto fica, e vai ajudando outras pessoas que tem a mesma necessidade. :) 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.