none
Diferença data com condição ativos e demitidos RRS feed

  • Pergunta

  • boa noite! amigos vejam se conseguimos ter esse resultado na SQL

    temos seguinte:

    SQL                       

     SELECT

       PFUNC.CHAPA,

       PFUNC.NOME    AS FUNCIONARIO,
       CONVERT (VARCHAR(10), PFUNC.DATAADMISSAO,103) AS 'DT ADMISSAO',
       CONVERT (VARCHAR(10), PFUNC.DATADEMISSAO,103) AS 'DT DEMISSAO',
       CASE 
    WHEN PFUNC.CODSITUACAO = 'A' THEN 'Ativo'
    WHEN PFUNC.CODSITUACAO = 'D' THEN 'Demitido' 
    WHEN PFUNC.CODSITUACAO = 'E' THEN 'Licença Maternidade' 
    WHEN PFUNC.CODSITUACAO = 'F' THEN 'Férias' 
    WHEN PFUNC.CODSITUACAO = 'I' THEN 'Apos. Invalidez' 
    WHEN PFUNC.CODSITUACAO = 'L' THEN 'Licença s/ Vencimento ' 
    WHEN PFUNC.CODSITUACAO = 'M' THEN 'Serv. Militar' 
    WHEN PFUNC.CODSITUACAO = 'P' THEN 'Af. Previdência' 
    WHEN PFUNC.CODSITUACAO = 'R' THEN 'Licença Remunerada' 
    WHEN PFUNC.CODSITUACAO = 'T' THEN 'Af. Ac. Trabalho' 
    WHEN PFUNC.CODSITUACAO = 'U' THEN 'Outros' 
    WHEN PFUNC.CODSITUACAO = 'V' THEN 'Aviso Prévio' 
    WHEN PFUNC.CODSITUACAO = 'W' THEN 'Licença Maternidade Complementar' 
    WHEN PFUNC.CODSITUACAO = 'X' THEN 'C/ Demissão no mês' 
    WHEN PFUNC.CODSITUACAO = 'Z' THEN 'Admissão próx. Mês'  
    else '' end as CODSITUACAO
       FROM 
       PFUNC

       INNER JOIN PPESSOA  ON PFUNC.CODPESSOA       = PPESSOA.CODIGO
       INNER JOIN PSECAO   WITH (NOLOCK) ON PSECAO.CODCOLIGADA = PFUNC.CODCOLIGADA AND PSECAO.CODIGO = PFUNC.CODSECAO    
       INNER JOIN GCOLIGADA WITH (NOLOCK) ON GCOLIGADA.CODCOLIGADA = PFUNC.CODCOLIGADA
       INNER JOIN PFUNCAO   WITH (NOLOCK) ON PFUNCAO.CODCOLIGADA = PFUNC.CODCOLIGADA AND PFUNCAO.CODIGO = PFUNC.CODFUNCAO
       LEFT JOIN PSECAO  AS SECAO WITH (NOLOCK) ON (SUBSTRING (PSECAO.CODIGO,0,9) = SECAO.CODIGO AND PSECAO.CODCOLIGADA = SECAO.CODCOLIGADA)

       LEFT JOIN PCODINSTRUCAO AS I WITH (NOLOCK) ON I.CODCLIENTE = PPESSOA.GRAUINSTRUCAO

    Retorno

    CHAPA    FUNCIONÁRIO    DT ADMISSAO   DT DEMISSAO         CODSITUACAO

                    

    001037 NUNES              01/11/1991 01/03/2014 Demitido
    001192 LOPES DE SA 01/08/1994                          Ativo

    preciso criar uma coluna que faça a diferença de tempo que funcionário ficou trabalhando na empresa, caso com situação e demitido, e calcular tempo que a mesmo esta trabalhando na empresa. 

    Resultado esperado

    CHAPA    FUNCIONÁRIO    DT ADMISSAO   DT DEMISSAO         CODSITUACAO       TEMPO

                    

    001037 NUNES              01/11/2013 01/12/2014 Demitido       1 ANO E 1 MÊS
    001192 LOPES DE SA 01/08/2018                          Ativo                  1 ANO E 7 MÊS

    Obrigado a todos pela ajuda.

           

    segunda-feira, 2 de março de 2020 02:09

Respostas

Todas as Respostas