Estou organizando um banco de exames e usei o seguinte código:
SELECT G.Nome,
G.RH,
G.Status,
G.Operacao,
G.Horario,
IIf(CDATE(G.Data_Contratacao)>CDATE(IIf(ISNULL(B.Realizado),0,CDATE(B.Realizado))),CDATE(G.Data_Contratacao),CDATE(IIf(ISNULL(B.Realizado),0,CDATE(B.Realizado)))) AS Ultimo_Exame, IIf(IIf(CDATE(G.Data_Contratacao)>CDATE(IIf(ISNULL(B.Realizado),0,CDATE(B.Realizado))),CDATE(G.Data_Contratacao),CDATE(IIf(ISNULL(B.Realizado),0,CDATE(B.Realizado))))+365>=CDATE(NOW()),"DENTRO_DO_PRAZO","FORA_DO_PRAZO") AS Situacao_Funcionario
FROM Gruppi as G LEFT OUTER JOIN Base_Exames as B ON (G.Nome=B.Nome) AND (G.RH=B.RH)
Acontece que um mesmo funcionário fez vários exames e eu preciso apenas do último exame feito e uma tabela o mais enchuta possivel, além disso algumas linha são exatamente iguais então a tabela fica mais ou menos assim:
Nome RH Status Operacao Horario Ultimo_Exame Situacao_Funcionario
Onde na verdade eu preciso apenas da última linha, quando eu uso a função DISTINC para eliminar
pelos menos as linhas iguais eu tenho o erro de Tipo de Dados Icompativel.
Tenho procurado muito em forum a resposta do problema e vi que talvez se combinasse DISTINCT+GRAETEST conseguiria mais não fui feliz na execução da ideia.
Bom Gente é isso, eu agradeceria muito se alguém pudesse me ajudar.
Question
Vfsantos
Boa dia,
Estou organizando um banco de exames e usei o seguinte código:
SELECT G.Nome,
G.RH,
G.Status,
G.Operacao,
G.Horario,
IIf(CDATE(G.Data_Contratacao)>CDATE(IIf(ISNULL(B.Realizado),0,CDATE(B.Realizado))),CDATE(G.Data_Contratacao),CDATE(IIf(ISNULL(B.Realizado),0,CDATE(B.Realizado)))) AS Ultimo_Exame, IIf(IIf(CDATE(G.Data_Contratacao)>CDATE(IIf(ISNULL(B.Realizado),0,CDATE(B.Realizado))),CDATE(G.Data_Contratacao),CDATE(IIf(ISNULL(B.Realizado),0,CDATE(B.Realizado))))+365>=CDATE(NOW()),"DENTRO_DO_PRAZO","FORA_DO_PRAZO") AS Situacao_Funcionario
FROM Gruppi as G LEFT OUTER JOIN Base_Exames as B ON (G.Nome=B.Nome) AND (G.RH=B.RH)
Acontece que um mesmo funcionário fez vários exames e eu preciso apenas do último exame feito e uma tabela o mais enchuta possivel, além disso algumas linha são exatamente iguais então a tabela fica mais ou menos assim:
Nome RH Status Operacao Horario Ultimo_Exame Situacao_Funcionario
Joao 123 Trabalhando 1 08:00 - 18:00 6/8/2009 FORA_DO_PRAZO
Joao 123 Trabalhando 1 08:00 - 18:00 6/8/2010 FORA_DO_PRAZO
Joao 123 Trabalhando 1 08:00 - 18:00 6/8/2010 FORA_DO_PRAZO
Joao 123 Trabalhando 1 08:00 - 18:00 6/8/2011 DENTRO_DO_PRAZO
Onde na verdade eu preciso apenas da última linha, quando eu uso a função DISTINC para eliminar
pelos menos as linhas iguais eu tenho o erro de Tipo de Dados Icompativel.
Tenho procurado muito em forum a resposta do problema e vi que talvez se combinasse DISTINCT+GRAETEST conseguiria mais não fui feliz na execução da ideia.
Bom Gente é isso, eu agradeceria muito se alguém pudesse me ajudar.
Obrigado.
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.