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

(Resolvido) Consulta de datas


DiegoVix

Pergunta

Boa tarde!!!

Eu to precisando fazer a seguinte consulta:

Tabela afastamentos

T01001_i_matricula - (chave estrangeira - tabela servidores)

T01102_i_cdafastam - (chave primaria)

T01095_i_cdtpafast - (chave estrangeira da tabela tipos de afastamentos)

T01102_d_dtinicio - (inicio do afastamento)

T01102_d_dtfim - (fim do afastamento)

Eu tenho que tirar afastamento que estao no mesmo periodo...

Por exemplo: joao teve um periodo de ferias do dia 01-01-2010 ate 31-01-2010...

E nesse mesmo periodo eu tenho um afastamento para tratamento de saude dele que vai do dia 05-01-2010 até 10-01-2010

Eu to precisando saber quais são as matriculas que estao com esse tipo de problema... Pois eu não posso ter nois afastamentos no mesmo periodo!!!!

Entende

Eu preciso de uma consulta onde coloco os 2 tipos de afastamento que não quero que coicidem no mesmo periodo!!!

Editado por Jonathan Queiroz
Remover caixa alta do título e conteúdo conforme regra 3.7 (Jonathan)
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Bom dia Diego,

Uma idéia é você pegar as pessoas compreendidas no tipo de afastamento que deseja pesquisar. Após isto, fazer a comparação.

Ex.: Férias e tratamento de saude foram identificados 10 pessoas. Pegar as inserções de cada pessoa e comparar as datas inicio e fim. Se houver alguma interseção, haverá problema.

Link para o comentário
Compartilhar em outros sites

  • 0
Bom dia Diego,

Uma idéia é você pegar as pessoas compreendidas no tipo de afastamento que deseja pesquisar. Após isto, fazer a comparação.

Ex.: Férias e tratamento de saude foram identificados 10 pessoas. Pegar as inserções de cada pessoa e comparar as datas inicio e fim. Se houver alguma interseção, haverá problema.

pois é... eu fiz isso... so não sei de que forma irei tratar essa comparação... pois não é referente somente uma data, essa comparação é referente a um periodo inicial e final... você entende!!!!! Sera que seria no caso criar um CASE????

SELECT*

FROM RH.T01102_AFASTAMENTO AF

INNER JOIN RH.T01001_SERVIDOR S

ON S.T01001_I_MATRICULA = AF.T01001_I_MATRICULA

WHERE T01095_I_CDTPAFAST IN (1,2)

Link para o comentário
Compartilhar em outros sites

  • 0
você pode tratar o perído inicial e final como um intervalo. Para isto, utilize a sintaxe BETWEEN do SQL.

RESOLVIDO

SELECT *

FROM RH.T01102_AFASTAMENTO AF

INNER JOIN RH.T01001_SERVIDOR S

ON S.T01001_I_MATRICULA = AF.T01001_I_MATRICULA

WHERE T01095_I_CDTPAFAST IN (1)

AND AF.T01001_I_MATRICULA IN (SELECT T01001_I_MATRICULA

FROM RH.T01102_AFASTAMENTO AF2

WHERE AF2.T01095_I_CDTPAFAST IN (2)

AND ((AF.T01102_D_DTINICIO BETWEEN AF2.T01102_D_DTINICIO AND AF2.T01102_D_DTFIM)

OR (AF.T01102_D_DTINICIO < AF2.T01102_D_DTINICIO AND

(AF.T01102_D_DTFIM >= AF2.T01102_D_DTINICIO AND AF.T01102_D_DTFIM <= AF2.T01102_D_DTFIM)))

OR AF.T01102_D_DTINICIO < AF2.T01102_D_DTINICIO AND AF.T01102_D_DTFIM IS NULL)

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...