Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×

Total De Funcionarios Primeiro Dia Do Mês


Jean Marcel Orlandini

Posts Recomendados


  • Tópicos Que Criei:  162
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  517
  • Conteúdo/Dia:  0.08
  • Reputação:   2
  • Pontos/Conquistas:  4.749
  • Conteúdo Resolvido:  0
  • Dias Ganho:  3
  • Status:  Offline
  • Idade:  49
  • Dispositivo:  Windows

Prezados,

Alguem tem alguma fórmula e/ou sql que retorna a totalidade de funcionarios ativos no primeiro dia de cada mês.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.842
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.579
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Jean, não é difícil montar...mas,

1 - V0cê quer que mostre vários meses em uma única consulta, ou uma vez só, sempre considerando o mês corrente?

2 - Se alguém entrar no dia 01/mês vai contar normalmente, certo?

3 - E entrando no meio do mês já não conta?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  162
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  517
  • Conteúdo/Dia:  0.08
  • Reputação:   2
  • Pontos/Conquistas:  4.749
  • Conteúdo Resolvido:  0
  • Dias Ganho:  3
  • Status:  Offline
  • Idade:  49
  • Dispositivo:  Windows

Jair,

1 - V0cê quer que mostre vários meses em uma única consulta, ou uma vez só, sempre considerando o mês corrente?

R: a consulta seria mês a mês.

2 - Se alguém entrar no dia 01/mês vai contar normalmente, certo?

R: Todos que entraram no dia 01 de cada mês será contado.

3 - E entrando no meio do mês já não conta?

R: Neste caso não.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  672
  • Conteúdo/Dia:  0.11
  • Reputação:   25
  • Pontos/Conquistas:  4.005
  • Conteúdo Resolvido:  0
  • Dias Ganho:  18
  • Status:  Offline
  • Idade:  48

Olá Jean

Baseado na sua descrição fiz este pequeno select e você só precisará ajustá-lo para a sua necessidade específica.

SELECT
 DATEPART(YEAR,PFUNC.DATAADMISSAO),
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 1 THEN PFUNC.DATAADMISSAO END), 0) AS 'JAN',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 2 THEN PFUNC.DATAADMISSAO END), 0) AS 'FEV',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 3 THEN PFUNC.DATAADMISSAO END), 0) AS 'MAR',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 4 THEN PFUNC.DATAADMISSAO END), 0) AS 'ABR',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 5 THEN PFUNC.DATAADMISSAO END), 0) AS 'MAI',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 6 THEN PFUNC.DATAADMISSAO END), 0) AS 'JUN',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 7 THEN PFUNC.DATAADMISSAO END), 0) AS 'JUL',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 8 THEN PFUNC.DATAADMISSAO END), 0) AS 'AGO',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 9 THEN PFUNC.DATAADMISSAO END), 0) AS 'SET',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 10 THEN PFUNC.DATAADMISSAO END), 0) AS 'OUT',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 11 THEN PFUNC.DATAADMISSAO END), 0) AS 'NOV',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATAADMISSAO) = 12 THEN PFUNC.DATAADMISSAO END), 0) AS 'DEZ'
FROM
 PFUNC
GROUP BY
 DATEPART(YEAR,PFUNC.DATAADMISSAO)
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  672
  • Conteúdo/Dia:  0.11
  • Reputação:   25
  • Pontos/Conquistas:  4.005
  • Conteúdo Resolvido:  0
  • Dias Ganho:  18
  • Status:  Offline
  • Idade:  48

Jean, você pode fazer isso para demitidos também

SELECT
 DATEPART(YEAR,PFUNC.DATADEMISSAO),
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 1 THEN PFUNC.DATADEMISSAO END), 0) AS 'JAN',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 2 THEN PFUNC.DATADEMISSAO END), 0) AS 'FEV',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 3 THEN PFUNC.DATADEMISSAO END), 0) AS 'MAR',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 4 THEN PFUNC.DATADEMISSAO END), 0) AS 'ABR',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 5 THEN PFUNC.DATADEMISSAO END), 0) AS 'MAI',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 6 THEN PFUNC.DATADEMISSAO END), 0) AS 'JUN',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 7 THEN PFUNC.DATADEMISSAO END), 0) AS 'JUL',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 8 THEN PFUNC.DATADEMISSAO END), 0) AS 'AGO',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 9 THEN PFUNC.DATADEMISSAO END), 0) AS 'SET',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 10 THEN PFUNC.DATADEMISSAO END), 0) AS 'OUT',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 11 THEN PFUNC.DATADEMISSAO END), 0) AS 'NOV',
 COALESCE(COUNT(CASE WHEN DATEPART(DAY,PFUNC.DATADEMISSAO) = 12 THEN PFUNC.DATADEMISSAO END), 0) AS 'DEZ'
FROM
 PFUNC
WHERE
GROUP BY
 DATEPART(YEAR,PFUNC.DATADEMISSAO)

Até mais

:victory:

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  58
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  672
  • Conteúdo/Dia:  0.11
  • Reputação:   25
  • Pontos/Conquistas:  4.005
  • Conteúdo Resolvido:  0
  • Dias Ganho:  18
  • Status:  Offline
  • Idade:  48

Jean, as consuta a cima ficaram legais, mas essa aqui deve estar exatamento do jeito que você precisa.

Talvés não seja exatamente o formato que você queira exibir as informações, mas esá bem legal e com o UNION ALL estou exibindo os adimitidos e os demitidos mês a mês.

DECLARE @ANO AS CHAR(4)
SET @ANO = '2013'
 
-- ADIMITIDOS
SELECT
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-01-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'JAN',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-02-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'FEV',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-03-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'MAR',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-04-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'ABR',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-05-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'MAI',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-06-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'JUN',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-07-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'JUL',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-08-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'AGO',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-09-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'SET',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-10-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'OUT',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-11-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'NOV',
 COALESCE(COUNT(CASE WHEN PFUNC.DATAADMISSAO <= @ANO + '-12-01' THEN PFUNC.DATAADMISSAO END), 0) AS 'DEZ'
FROM
 PFUNC
WHERE
  PFUNC.CODCOLIGADA = 2

UNION ALL
 
-- DEMITIDOS
SELECT
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-01-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'JAN',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-02-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'FEV',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-03-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'MAR',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-04-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'ABR',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-05-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'MAI',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-06-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'JUN',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-07-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'JUL',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-08-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'AGO',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-09-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'SET',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-10-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'OUT',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-11-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'NOV',
 COALESCE(COUNT(CASE WHEN PFUNC.DATADEMISSAO <= @ANO + '-12-01' THEN PFUNC.DATADEMISSAO END), 0) AS 'DEZ'
FROM
 PFUNC
WHERE
  PFUNC.CODCOLIGADA = 2

Até mais

:victory:

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  162
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  517
  • Conteúdo/Dia:  0.08
  • Reputação:   2
  • Pontos/Conquistas:  4.749
  • Conteúdo Resolvido:  0
  • Dias Ganho:  3
  • Status:  Offline
  • Idade:  49
  • Dispositivo:  Windows

Robinson,

Ok. Vou analisar a sua sugestão.

Agradeço.

Abraços.

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.