Ir para conteúdo

Saldo de férias


cajordao

Posts Recomendados


  • Tópicos Que Criei:  1
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  3
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  25
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Boa tarde,

Por gentileza, será que tem algum iluminado que tenha um relatório ou SQL que apresente o saldo atualizado de férias?

Obrigadooo.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  59
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  817
  • Conteúdo/Dia:  0.16
  • Reputação:   105
  • Pontos/Conquistas:  4.774
  • Conteúdo Resolvido:  0
  • Dias Ganho:  74
  • Status:  Offline
  • Idade:  61
  • Dispositivo:  Windows

Boa noite,

Uso esta consulta em um cubo.  Trata-se de um caso particular que leva em conta as férias coletivas da empresa (mostra o saldo das férias coletivas e o saldo acumulado), que ocorrem todo ano, mas já serve como base.  Não tenho espaço para colocar o cubo anexo.

No cubo tem umas funções, tipo:

-  Saldo: min(Iif([BASESLD] > 0,  [BASESLD] ,0 ),30)

- Saldo acumulado: [BASESALDOACUM]

Consulta: 

SELECT PFUFERIAS.CODCOLIGADA,
       PFUFERIAS.CHAPA,
       PFUNC.NOME,
       PFUNC.DATAADMISSAO,
       PFUFERIAS.INICIOPERAQUIS,
       PFUFERIAS.FIMPERAQUIS,
       SUM(PFUFERIASPER.NRODIASFERIAS)                                                                                               AS FERIAS,
       PFUFERIASPER.DATAINICIO,
       ( PFUFERIAS.FIMPERAQUIS ) + 364                                                                                               AS LIMITE,
       ( ( ( ( DATEDIFF(DD, PFUFERIAS.INICIOPERAQUIS, GETDATE()) ) * 30 ) / 365 )  - ISNULL(SUM(PFUFERIASPER.NRODIASFERIAS), 0) ) AS BASESALDOACUM,
       ( CASE
           WHEN PFUFERIAS.FIMPERAQUIS >= GETDATE() THEN ( ( ( DATEDIFF(DD, PFUFERIAS.INICIOPERAQUIS, GETDATE()) ) * 30 ) / 365 ) 
           ELSE ( ( DATEDIFF(DD, PFUFERIAS.INICIOPERAQUIS, PFUFERIAS.FIMPERAQUIS+1) * 30 ) / 365 ) 
         END )                                                                                                                       AS DIAS,
       ( CASE
           WHEN PFUFERIAS.FIMPERAQUIS >= GETDATE() THEN ( ( ( ( DATEDIFF(DD, PFUFERIAS.INICIOPERAQUIS, GETDATE()) ) * 30 ) / 365 )  - ISNULL(SUM(PFUFERIASPER.NRODIASFERIAS), 0) )
           ELSE ( ( ( DATEDIFF(DD, PFUFERIAS.INICIOPERAQUIS, PFUFERIAS.FIMPERAQUIS+1) * 30 ) / 365 ) - ISNULL(SUM(PFUFERIASPER.NRODIASFERIAS), 0))
         END )                                                                                                                       AS BASESLD
FROM   PFUNC(NOLOCK)
       LEFT OUTER JOIN PFUFERIAS(NOLOCK)
         ON PFUFERIAS.CODCOLIGADA = PFUNC.CODCOLIGADA
            AND PFUFERIAS.CHAPA = PFUNC.CHAPA
            AND PFUFERIAS.PERIODOABERTO = 1
       LEFT OUTER JOIN PFUFERIASPER(NOLOCK)
         ON PFUFERIAS.CODCOLIGADA = PFUFERIASPER.CODCOLIGADA
            AND PFUFERIAS.CHAPA = PFUFERIASPER.CHAPA
            AND PFUFERIAS.FIMPERAQUIS = PFUFERIASPER.FIMPERAQUIS
            AND DATEPART(YYYY, PFUFERIASPER.DATAINICIO) >= :ANOFERIASCOLETIVA
            AND DATEPART(MM, PFUFERIASPER.DATAINICIO) >= :MESFERIASCOLETIVA
WHERE  ( PFUNC.CODSITUACAO = 'A'
          OR PFUNC.CODSITUACAO = 'F' )
       AND ( PFUNC.CODTIPO = 'N'
              OR PFUNC.CODTIPO = 'Z' )
GROUP  BY PFUFERIAS.CODCOLIGADA,
          PFUFERIAS.CHAPA,
          PFUNC.NOME,
          PFUNC.DATAADMISSAO,
          PFUFERIAS.INICIOPERAQUIS,
          PFUFERIAS.FIMPERAQUIS,
          PFUFERIASPER.DATAINICIO

 

IMPORTANTE:  Não leva em conta as faltas !!!!

 

Editado por omar
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  1
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  3
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  25
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Omar, muito obrigado pela resposta!

 

Tentei cadastrar a SQL e me apresentou o erro abaixo.

Pode me ajudar por gentileza?

image.png.688640239abfe3229b7fcce8ef82a5b8.png

 

 

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  1
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  3
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  25
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Na geração pelo CUBO, apareceu o erro abaixo:

 

image.png.724050b1359fcff06f1133de2a1765e5.png

 

image.png.8c31c38961e3d7fbbaf85d3131d7adbe.png

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  59
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  817
  • Conteúdo/Dia:  0.16
  • Reputação:   105
  • Pontos/Conquistas:  4.774
  • Conteúdo Resolvido:  0
  • Dias Ganho:  74
  • Status:  Offline
  • Idade:  61
  • Dispositivo:  Windows

Vc usa MS SQL ou ORACLE ?  Esta função que identifica o mês é do MS SQL.  Talvez vc tenha de buscar o equivalente ou remover do where.   Só utilizo para segregar o saldo de férias coletivas.   O departamento pessoal daqui pede o saldo acumulado e o saldo das últimas férias coletivas.

Editado por omar
Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

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

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.