Ir para conteúdo
Fórum Script Brasil
  • 0

Buscar funcionarios de uma setor em determinado período


Dju

Pergunta

Tenho a seguinte questão:

Existem duas tabelas, uma tabela de funcionários e outra com a data de mudança de setor deste funcionário.

Preciso saber se em um intervalo de período, quais os funcionários estavam no setor que eu filtrar.

Tabela de Funcionários:

Matrícula Funcionario

10020 JOAO BATISTA

10242 MARIA TERESINHA

09632 JOAQUIM DA SILVA

Tabela de Mudança de Setor

Matricula DtMudanca Setor

10020 01/04/2007 1

10020 31/07/2009 2

10020 01/10/2009 5

09632 30/04/2007 1

09632 05/03/2008 3

10242 31/10/2009 5

10242 15/05/2007 1

Quero buscar por exemplo quem estava no setor 1 entre 01/04/2007 a 30/04/2007. O resultado seriam os funcionários 10020 e 09632. Se fosse o setor 5 entre 01/10/2009 a 15/01/2009 seria o funcionário 10020. Lembrando que somente quem estava no setor durante o periódo q eu escolher e setor é que dem ser retornados na consulta.

Se puderem me ajudar!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Bom dia Dju,

Criei duas temporárias, inserindo os dados de exemplo que passou acima. Fiz os selects de acordo com o que necessita. Segue os exemplos abaixo:

create table #Funcionarios (Matricula int, Funcionario varchar(50))
create table #Setor (Matricula int, DtMudanca datetime, Setor int)


insert into #Funcionarios values (10020, 'JOAO BATISTA')
insert into #Funcionarios values (10242, 'MARIA TERESINHA')
insert into #Funcionarios values (09632, 'JOAQUIM DA SILVA')

insert into #Setor values (10020, '2007-04-01', 1)
insert into #Setor values (10020, '2009-07-31', 2)
insert into #Setor values (10020, '2009-10-01', 5)
insert into #Setor values (09632, '2007-04-30', 1)
insert into #Setor values (09632, '2008-03-05', 3)
insert into #Setor values (10242, '2009-10-31', 5)
insert into #Setor values (10242, '2007-05-15', 1)

-- 1º resultado
select f.matricula, f.funcionario, s.setor from #Funcionarios f, #Setor s where f.matricula=s.matricula
and DtMudanca between '2007-04-01' and '2007-04-30'

-- 2º resultado
select f.matricula, f.funcionario, s.setor from #Funcionarios f, #Setor s where f.matricula=s.matricula
and DtMudanca between '2009-01-15' and '2009-10-01'

Link para o comentário
Compartilhar em outros sites

  • 0
Bom dia Dju,

Criei duas temporárias, inserindo os dados de exemplo que passou acima. Fiz os selects de acordo com o que necessita. Segue os exemplos abaixo:

create table #Funcionarios (Matricula int, Funcionario varchar(50))
create table #Setor (Matricula int, DtMudanca datetime, Setor int)


insert into #Funcionarios values (10020, 'JOAO BATISTA')
insert into #Funcionarios values (10242, 'MARIA TERESINHA')
insert into #Funcionarios values (09632, 'JOAQUIM DA SILVA')

insert into #Setor values (10020, '2007-04-01', 1)
insert into #Setor values (10020, '2009-07-31', 2)
insert into #Setor values (10020, '2009-10-01', 5)
insert into #Setor values (09632, '2007-04-30', 1)
insert into #Setor values (09632, '2008-03-05', 3)
insert into #Setor values (10242, '2009-10-31', 5)
insert into #Setor values (10242, '2007-05-15', 1)

-- 1º resultado
select f.matricula, f.funcionario, s.setor from #Funcionarios f, #Setor s where f.matricula=s.matricula
and DtMudanca between '2007-04-01' and '2007-04-30'

-- 2º resultado
select f.matricula, f.funcionario, s.setor from #Funcionarios f, #Setor s where f.matricula=s.matricula
and DtMudanca between '2009-01-15' and '2009-10-01'

Fulvio

Esta consulta eu realizei e não atendeu.

Os funcionários que já estavam no setor x devem sair nesta relação e da forma que fizemos só saem os que tiveram mudança no período que eu selecionei.

Exemplo: Funcionário que foi admitido em 2006 para o setor 1 e em janeiro de 2009 continuou no mesmo setor, ele tem que sair na relação, pois o setor em que o mesmo estava em janeiro é o setor 1.

Não sei se soube expressar bem.

Se conseguir fazer com estas questões ficarei muito agradecida, porque não consegui ninguém que conseguisse fazer.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Dju,

Não seria os funcionários que estão entre as datas pesquisadas?

O funcionário que foi admitido em 2006 e em janeiro de 2009 para o setor 1, sairá na relação desde que esteja entre as datas de pesquisa. Se o intervalo da pesquisa for apenas 2009, ele sairá uma vez. Se o intervalo da pesquisa for de 2006 a 2009, ele sairá duas vez.

você queria todos os funcionários em uma relação? E caso o funcionário passe por vários setores, selecionar o setor mais recente?

Desculpe, mas não entendi ao certo. Poste um exemplo com dados (igual no 1º post), e com o resultado que deseja obter.

Pode deixar que resolveremos... rs.

Link para o comentário
Compartilhar em outros sites

  • 0

Resumindo, o que preciso é saber quais eram os funcionários do setor 1 por exemplo na data que eu estipular.

Quais eram os funcionários da contabilidade em janeiro de 2010.

A questão é que todos os funcionários q estavam naquele setor no periodo que eu informar deve sair e não somente os que foram para aquele setor no período que eu fizer a busca.

Vao existir funcionários que já estavam naquele setor antes de janeiro de 2010 e eles precisam sair na relação.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Dju,

Rs.... caminhando com calma a gente chega lá...

No exemplo que postei com as temporárias (acima), fiz outro select utilizando o UNION (abaixo). Desta forma, pego as pessoas que trabalharam no setor 1 no período que informou; e pego as pessoas de qualquer setor no período que informou. Ficaria assim:

select f.matricula, f.funcionario, s.setor, s.DtMudanca from #Funcionarios f, #Setor s where f.matricula=s.matricula
and Setor=1 and DtMudanca between '2007-04-01' and '2007-04-30'
UNION
select f.matricula, f.funcionario, s.setor, s.DtMudanca from #Funcionarios f, #Setor s where f.matricula=s.matricula
and DtMudanca between '2007-04-01' and '2007-04-30'

Caso não seja isto, estou sempre on line no horário comercial. Podemos resolver on line pelo MSN (daasabh@hotmail.com).

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

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

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...