restringir select a apenas uma linha de data por pessoa?
Boa tarde,
Estou enfrentando um problema recorrente nas minhas queries, já tentei algumas alternativas encontradas aqui, sem sucesso.
Tenho o seguinte select:
select
avaliacao.dt_liberacao,
avaliacao.cd_pessoa_fisica,
nome.nm_pessoa_fisica NOME_PCT,
decode(diag.qt_resultado,871,'Desnutrição grave',872,'Desnutrição moderada',873,'Desnutrição leve',
874,'Eutrofia',875,'Sobrepeso',876,'Obesidade')
from
med_avaliacao_paciente avaliacao,
pessoa_fisica nome,
med_avaliacao_result diag
where
diag.nr_seq_item = 1266
and diag.nr_seq_avaliacao = avaliacao.nr_sequencia
and avaliacao.cd_pessoa_fisica = nome.cd_pessoa_fisica
and avaliacao.dt_liberacao is not null
and ie_situacao = 'A'
O que quero é trazer apenas o último registro por pessoa, um das alternativas que tentei foi dada em outro tópico pelo moderador Motta, incluindo no where o código:
and avaliacao.dt_liberacao = (select max(avaliacao2.dt_liberacao)
from med_avaliacao_paciente avaliacao2
where avaliacao.cd_pessoa_fisica = avaliacao2.cd_pessoa_fisica)
Porém esse select só retorna um resultado...
Realmente preciso entender como funciona essa lógico, porque tenho vários selects semelhantes que preciso retirar os resultados "repetidos"Discussão (0)
Carregando comentários...