ola a todos
preciso fazer um select que procure um proceddimento realizado em um paciente por exemplo:
se procedimento =111046 then 1
se procedimento =111047 then 2
se procedimento =111048 then 4
se procediemnto = 111049 then 4
se não
procura data do ultimo atendimento em q o procedimento tenha sido o 1110 48 ou 111049 e se a data for <= 5 anos then 4
obs: os proceimentos acima são de vacinas e indicam se o paciente tomou a 1ª dose(1) ou a 2ª dose(2) e se tomou a 3ª ou reforço(4) que siguinifica estar imune. Mas caso não tenha tomado, dentro de um periodo , então verifica-se se nos ultimos 5 anos ele tomou a 3º dose ou o reforço; condição que também é considerado imune a doença.
desde já agradeço a ajuda. Todas a minha duvidas tenho encontrado aqui no site. já divulgeui pra varias pessoas inclisive para uma turma de certificaçaão oracle q esta acontecendo em sp (senac) e ficaram muito satisifeito com o site, inclusive a minha chefe, q esta fazendo este curso. Então parabens!!!
select com elsif
-
- Rank: Programador Pleno
- Mensagens: 44
- Registrado em: Qua, 04 Jan 2006 9:12 am
- Localização: Botucatu - SP
- Contato:
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Dá uma olhada nesse link:
http://www.glufke.net/oracle/viewtopic.php?t=12
http://www.glufke.net/oracle/viewtopic.php?t=12
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Qui, 27 Abr 2006 8:50 pm
- Localização: Salvador - BA
Olá, João Moraes
Veja o script abaixo:
PS1: O li_procedimento seria uma coluna da tabela.
PS2: Em seu caso, ao invés do ld_data, poderia ser usado uma função que busque a data do ultimo atendimento em que o procedimento tenha sido o 111048 ou 111049. ,
PS3: É uma pena, mas quando enviamos a msg, perdemos a identação.
Espero ter ajudado!
Atenciosamente,
Álvaro
Veja o script abaixo:
DECLARE
li_procedimento number := 111048;
ld_data date := to_date('18/01/2000', 'DD/MM/YYYY');
v_resultado varchar2(30);
BEGIN
select case when li_procedimento = 111046 then
'1ª Dose'
else
case when li_procedimento = 111047 then
'2ª Dose'
else
case when li_procedimento = 111048 then
'3ª Dose'
else
case when li_procedimento = 111049 then
'4ª Dose'
else
case when months_between(sysdate, ld_data) <= 60 then
'4ª Dose'
else
'Última data tem mais de 5 anos'
end
end
end
end
end
into v_resultado
from dual;
dbms_output.put_line('Resultado: ' || v_resultado);
END;
PS2: Em seu caso, ao invés do ld_data, poderia ser usado uma função que busque a data do ultimo atendimento em que o procedimento tenha sido o 111048 ou 111049. ,
PS3: É uma pena, mas quando enviamos a msg, perdemos a identação.
Espero ter ajudado!
Atenciosamente,
Álvaro
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 21 visitantes