- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 14 anos, 2 meses atrás por Ishii.
-
AutorPosts
-
23 de novembro de 2010 às 3:21 pm #96957superbvmParticipante
Bom dia galera,
Preciso trazer os pacientes reicidentes de internação, ou seja, que tiveram alta e foram internados novamente menos de 15 dias depois da alta…
O select q traz os atendimentos dos pacientes é esse…
select cd_paciente, dt_atendimento, dt_alta
from atendime where tp_atendimento = ‘I’Alguém poderia me ajudar por favor? Grato desde já.
att,
23 de novembro de 2010 às 3:28 pm #96958IshiiParticipanteOlá,
Não entendi direito a sua dúvida mas seria algo assim:
select cd_paciente, dt_atendimento, dt_alta
from atendime where tp_atendimento = 'I' and sysdate - dt_alta <= 15
Se os campos data forem tipo Date mesmo, senão for deverá ter uma conversão para tipo Date
[]s Ishii
23 de novembro de 2010 às 3:38 pm #96959superbvmParticipanteOlá amigo, obrigado pela resposta, seria quase isso, só que no lugar da sysdate seria a última data de alta daquele paciente. Entendeu?
[quote=”Ishii”:2ybghdcy]Olá,
Não entendi direito a sua dúvida mas seria algo assim:
select cd_paciente, dt_atendimento, dt_alta
from atendime where tp_atendimento = 'I' and sysdate - dt_alta <= 15
Se os campos data forem tipo Date mesmo, senão for deverá ter uma conversão para tipo Date
[]s Ishii[/quote]
23 de novembro de 2010 às 4:21 pm #96960IshiiParticipanteOlá,
Desculpe-me mas ainda não entendi, acho melhor você colocar qual o resultado esperado e qual resultado você está encontrando atualmente com o SQL atual, acho que assim fica mais fácil entender a sua necessidade. Por exemplo: a dt_atendimento seria então a outra condição de data de internação?
[]s Ishii
23 de novembro de 2010 às 4:34 pm #96961superbvmParticipantePreciso trazer os pacientes cuja a data do atendimento menos a data da última alta seja menor do que 15 dias.
Cheguei até aqui, mas está dando erro.select cd_paciente, dt_atendimento, dt_alta
from atendime
where tp_atendimento = 'I'
and (select dt_alta from atendime where tp_atendimento = 'I' and dt_alta is not null order by dt_alta desc) - dt_atendimento <= 15
and dt_alta is not null[quote=”Ishii”:64k5bn0d]Olá,
Desculpe-me mas ainda não entendi, acho melhor você colocar qual o resultado esperado e qual resultado você está encontrando atualmente com o SQL atual, acho que assim fica mais fácil entender a sua necessidade. Por exemplo: a dt_atendimento seria então a outra condição de data de internação?
[]s Ishii[/quote]
23 de novembro de 2010 às 5:38 pm #96968IshiiParticipanteOlá,
Então acho que seria assim:
select cd_paciente, dt_atendimento, dt_alta from (
select cd_paciente, dt_atendimento,
max(dt_atendimento)
over (partition by cd_paciente) dt_ult_atend,
count(cd_paciente)
over (partition by cd_paciente, dt_atendimento ) cnt_pac from atendime )
where tp_atendimento = 'I'
and cnt_pac = 1
and dt_alta - dt_ult_atend < 15
and dt_alta is not nullNão testei mas deve ser isso mesmo…
Qualquer coisa coloca o erro e o resultado aqui que analisamos conjuntamente.
[]s Ishii
-
AutorPosts
- Você deve fazer login para responder a este tópico.