Jean Marcel Orlandini Postado 7 de Novembro de 2013 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 Denunciar Compartilhar Postado 7 de Novembro de 2013 Prezados, Alguem tem alguma fórmula e/ou sql que retorna a totalidade de funcionarios ativos no primeiro dia de cada mês. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 8 de Novembro de 2013 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 Denunciar Compartilhar Postado 8 de Novembro de 2013 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? Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jean Marcel Orlandini Postado 10 de Novembro de 2013 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 Autor Denunciar Compartilhar Postado 10 de Novembro de 2013 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. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Robinson Postado 12 de Novembro de 2013 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 Denunciar Compartilhar Postado 12 de Novembro de 2013 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) Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Robinson Postado 12 de Novembro de 2013 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 Denunciar Compartilhar Postado 12 de Novembro de 2013 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 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Robinson Postado 12 de Novembro de 2013 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 Denunciar Compartilhar Postado 12 de Novembro de 2013 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 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jean Marcel Orlandini Postado 12 de Novembro de 2013 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 Autor Denunciar Compartilhar Postado 12 de Novembro de 2013 Robinson, Ok. Vou analisar a sua sugestão. Agradeço. Abraços. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
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.