DiegoVix Postado Julho 7, 2010 Denunciar Share Postado Julho 7, 2010 (editado) Boa tarde!!!Eu to precisando fazer a seguinte consulta:Tabela afastamentosT01001_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-2010Eu 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!!!!EntendeEu preciso de uma consulta onde coloco os 2 tipos de afastamento que não quero que coicidem no mesmo periodo!!! Editado Julho 7, 2010 por Jonathan Queiroz Remover caixa alta do título e conteúdo conforme regra 3.7 (Jonathan) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Julho 8, 2010 Denunciar Share Postado Julho 8, 2010 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DiegoVix Postado Julho 8, 2010 Autor Denunciar Share Postado Julho 8, 2010 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 AFINNER JOIN RH.T01001_SERVIDOR SON S.T01001_I_MATRICULA = AF.T01001_I_MATRICULAWHERE T01095_I_CDTPAFAST IN (1,2) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Julho 8, 2010 Denunciar Share Postado Julho 8, 2010 você pode tratar o perído inicial e final como um intervalo. Para isto, utilize a sintaxe BETWEEN do SQL. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DiegoVix Postado Julho 15, 2010 Autor Denunciar Share Postado Julho 15, 2010 você pode tratar o perído inicial e final como um intervalo. Para isto, utilize a sintaxe BETWEEN do SQL.RESOLVIDOSELECT *FROM RH.T01102_AFASTAMENTO AFINNER JOIN RH.T01001_SERVIDOR SON S.T01001_I_MATRICULA = AF.T01001_I_MATRICULAWHERE 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) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Julho 15, 2010 Denunciar Share Postado Julho 15, 2010 Boa tarde Diego, Boa... é isso ai!! :.) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
DiegoVix
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 QueirozRemover 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
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.