Anúncios Publicitários
  • Anúncios

    • Jair - Fórmula

      Participe fazendo Tópicos e posts ...   07-07-2016

      Você também pode iniciar tópicos... e também respondê-los.   Novos membros, que ainda não conhecem como funcionam fóruns como este, gostaria de informar que, todos estão com permissão de postagem em praticamente todas as áreas. Use e abuse do Fórum. Pergunte, responda, comente, agradeça a quem disponibilizou algum relatório. Participe mesmo. Somente solicitamos que verifique se está postando a sua mensagem no lugar certo, pra não perguntar uma dúvida operacional de sistema, por exemplo em "Planilhas Eletronicas", ou alguma dica sobre Gerador de Relatórios na área "Bate Papo" Tem alguma dúvida sobre o Fórum? Acesse e crie um tópico na área "Dúvidas, Problemas e Sugestões Sobre o Fórum" e descreva detalhadamente. Quanto mais detalhado e claro, mais fácil de ser verificado e ter logo sua resposta. Se desejar, entre em contato conosco, envie um email ou uma PM ( Mensagem Privada), que assim que possível lhe darei retorno: CLIQUE AQUI Conto com a participação de todos. Obrigado. Administrador
Edivan

Quantidade de funções por setor

4 posts neste tópico

Olá pessoal!

Tenho a consulta baixo, porém, queria que ela retornasse as Seções (Setor) das respectivas funções. Alguém pode dar uma ajuda ?

SELECT DISTINCT PFUNCAO.CODIGO,PFUNCAO.NOME,
          (SELECT MIN(SALARIO) 
         FROM PFUNC PFUNC1 
         WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO 
         GROUP BY CODFUNCAO)MENOR,
     (SELECT MAX(SALARIO) FROM PFUNC PFUNC1 
        WHERE PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO 
        GROUP BY CODFUNCAO)MAIOR,
     ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE
         PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND
         CODSITUACAO='A' AND CODCOLIGADA=1
         GROUP BY CODSITUACAO),0.00)A,
     ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE
         PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND
         CODSITUACAO='P' AND CODCOLIGADA=1
         GROUP BY CODSITUACAO),0.00)P,
     ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE
         PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND
         CODSITUACAO='T' AND CODCOLIGADA=1
         GROUP BY CODSITUACAO),0.00)T,
     ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE
         PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND
         CODSITUACAO='M' AND CODCOLIGADA=1
         GROUP BY CODSITUACAO),0.00)M,
     ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE
         PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND
         CODSITUACAO='E' AND CODCOLIGADA=1
         GROUP BY CODSITUACAO),0.00)E,
     ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE
         PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND
         CODSITUACAO='F' AND CODCOLIGADA=1
         GROUP BY CODSITUACAO),0.00)F,
     ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE
         PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND
         CODSITUACAO='V' AND CODCOLIGADA=1
         GROUP BY CODSITUACAO),0.00)V,
     ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE
         PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND
         DATEDIFF(DAY,PFUNC1.DATAADMISSAO,GETDATE()) < 365 AND CODCOLIGADA=1 
         GROUP BY CODFUNCAO),0.00)'-1A',
     ISNULL((SELECT COUNT(*)FROM PFUNC PFUNC1 WHERE
         PFUNC1.CODFUNCAO=PFUNC.CODFUNCAO AND
         DATEDIFF(DAY,PFUNC1.DATAADMISSAO,GETDATE()) > 365 AND CODCOLIGADA=1 
         GROUP BY CODFUNCAO),0.00)'+1A'
     
FROM PFUNC,PFUNCAO
WHERE PFUNC.CODCOLIGADA=1 AND 
PFUNC.CODSITUACAO<>'D' AND
PFUNC.CODCOLIGADA=PFUNCAO.CODCOLIGADA AND 
PFUNCAO.CODIGO=PFUNC.CODFUNCAO
GROUP BY CODFUNCAO,CODSITUACAO,PFUNCAO.NOME,PFUNCAO.CODIGO,DATAADMISSAO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

Com este select, usando o cubo, faço diversos levantamentos, inclusive o total da função por seção em uma determinada data:

SELECT PFUNC.CODCOLIGADA,
       GCOLIGADA.NOME                                AS COLIGADA,
       GCOLIGADA.CGC,
       PFUNC.CHAPA,
       PFUNC.NOME                                    AS FUNCIONARIO,
       PSECAO.DESCRICAO                              AS SECAO,
       PPESSOA.SEXO,
       PFUNCAO.NOME                                  AS FUNCAO,
       PFUNCAO.CARGO,
       PFUNC.CODSITUACAO,
       PFUNC.SALARIO,
       PFUNC.SALARIO                                 AS SM,
       CASE
         WHEN PFUNC.SALARIO <= 800 THEN '1- Até 800,00'
         WHEN PFUNC.SALARIO > 800
              AND PFUNC.SALARIO <= 1500 THEN '2- 801,00 a 1.500,00'
         WHEN PFUNC.SALARIO > 1500
              AND PFUNC.SALARIO <= 3000 THEN '3- 1.500,00 a 3.000,00'
         WHEN PFUNC.SALARIO > 3000
              AND PFUNC.SALARIO <= 5000 THEN '4- 3.000,00 a 5.000,00'
         WHEN PFUNC.SALARIO > 5000
              AND PFUNC.SALARIO <= 10000 THEN '5- 5.000,00 a 10.000,00'
         ELSE '6- > 10.000,00'
       END                                           AS [FAIXA SALARIAL],
       CASE
         WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 1 THEN '1- Menos 1 ano'
         WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 1
              AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 2 THEN '2- 1 a 2 anos'
         WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 2
              AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 5 THEN '3- 2 a 5 anos'
         WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 5
              AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 10 THEN '4- 5 a 10 anos'
         WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 10
              AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 15 THEN '5- 10 a 15 anos'
         WHEN DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) >= 15
              AND DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) < 20 THEN '6- 15 a 20 anos'
         ELSE '7- Mais 20 anos'
       END                                           AS [TEMPO DE CASA],
       DATEDIFF(YYYY, PFUNC.DataAdmissao, GETDATE()) AS TEMPO,
       CASE
         WHEN DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) <= 25 THEN '1- 25 anos ou menos'
         WHEN DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) > 25
              AND DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) <= 34 THEN '2- 26 a 34 anos'
         WHEN DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) > 34
              AND DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) <= 44 THEN '3- 35 a 44 anos'
         WHEN DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) > 45
              AND DATEDIFF(YYYY, PPESSOA.DTNASCIMENTO, GETDATE()) <= 54 THEN '4- 45 a 54 anos'
         ELSE '5- Mais de 55 anos'
       END                                           AS IDADE,
       ( CASE PPESSOA.GRAUINSTRUCAO
           WHEN '1' THEN '01- Analfabeto'
           WHEN '2' THEN '02- Até 5o. ano ensino fundamental'
           WHEN '3' THEN '03- 5o. ano completo ensino fundamental'
           WHEN '4' THEN '04- 6o. ao 9o. ano ensino fundamental'
           WHEN '5' THEN '05- Ensino fundamentalcompleto'
           WHEN '6' THEN '06- Ensino médio incompleto'
           WHEN '7' THEN '07- Ensino médio completo'
           WHEN '8' THEN '08- Ensino superior incompleto'
           WHEN '9' THEN '09- Ensino superior completo'
           WHEN 'A' THEN '10- Pós-graduação incompleto'
           WHEN 'B' THEN '11- Pós-graduação completo'
           WHEN 'C' THEN '12- Mestrado incompleto'
           WHEN 'D' THEN '13- Mestrado completo'
           WHEN 'E' THEN '14- Doutorado incompleto'
           WHEN 'F' THEN '15- Doutorado completo'
           WHEN 'G' THEN '16- Pós-doutorado incompleto'
           WHEN 'H' THEN '17- Pós-doutorado completo'
         END )                                       AS [GRAU INSTRUÇÃO],
       PFUNC.CODTIPO,
       PFUNC.DataAdmissao,
       1                                             AS QUANT
FROM   PFUNC(NOLOCK),
       PPESSOA (NOLOCK),
       PSECAO(NOLOCK),
       GCOLIGADA(NOLOCK),
       PFUNCAO(NOLOCK)
WHERE  ( PFUNC.CODPESSOA = PPESSOA.CODIGO
         AND PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA
         AND PFUNC.CODSECAO = PSECAO.CODIGO
         AND PFUNC.CODCOLIGADA = PFUNCAO.CODCOLIGADA
         AND PFUNC.CODFUNCAO = PFUNCAO.CODIGO
         AND PFUNC.CODCOLIGADA = GCOLIGADA.CODCOLIGADA
         AND PFUNCAO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA
         AND PSECAO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA )
       AND PFUNC.CODSITUACAO NOT IN ( 'I', 'U' )
       AND ( PFUNC.CODCOLIGADA = GCOLIGADA.CODCOLIGADA
             AND PFUNC.CODCOLIGADA = PSECAO.CODCOLIGADA
             AND PFUNC.CODSECAO = PSECAO.CODIGO )
       AND ( ( PFUNC.CODSITUACAO <> 'D'
               AND PFUNC.DATAADMISSAO <= :DATA )
              OR ( PFUNC.CODSITUACAO = 'D'
                   AND PFUNC.DATAADMISSAO <= :DATA
                   AND PFUNC.DATADEMISSAO >= :DATA ) )
GROUP  BY PFUNC.DATAADMISSAO,
          PFUNC.CHAPA,
          PFUNCAO.NOME,
          PFUNCAO.CARGO,
          PFUNC.SALARIO,
          PPESSOA.SEXO,
          PPESSOA.DTNASCIMENTO,
          PPESSOA.GRAUINSTRUCAO,
          PFUNC.CODSITUACAO,
          PFUNC.CODTIPO,
          PFUNC.NOME,
          PSECAO.DESCRICAO,
          PFUNC.CODCOLIGADA,
          GCOLIGADA.NOME,
          GCOLIGADA.CGC 
 

Editado por omar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora