Aprenda PL/SQL

Preciso de uma pequena ajuda.

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Sex, 16 Set 2016 4:29 pm

Boa tarde pessoal,

preciso de uma ajuda em um sql que fiz, é um sql envolvendo números de prontuários, um dos prontuários retornou 8 vezes mudando o medico responsavel (está certo) porém quero que pegue apenas o ultimo resultado dessas 8 linhas que me retorne somente 1

sql:

Código: Selecionar todos
SELECT
          'Prontuário: ' || b.nr_prontuario ||         
          '     Paciente: ' || b.nm_pessoa_fisica ||       
          '     Médico Resp.: '||substr(obter_nome_pf(f.cd_medico_resp),1,50) nm_medico,         
          '     Data da Solicitação de Cópia: '
          ||To_Char(a.dt_alerta,'dd/mm/yyyy hh24:mi:ss')||           
            chr(13) 
           
FROM      alerta_paciente a,
          pessoa_fisica b,
          atendimento_paciente f
         
WHERE     a.cd_pessoa_fisica = b.cd_pessoa_fisica
and       b.cd_pessoa_fisica = f.cd_pessoa_fisica
AND       To_date(a.dt_alerta) = trunc(SYSDATE)
AND       a.nr_seq_tipo_alerta = 1
AND       b.cd_estabelecimento = 1
order BY  a.cd_pessoa_fisica
Anexos
print 1.JPG
Resultado do sql acima
jiopra

Mensagemem Ter, 20 Set 2016 9:27 am

Olá jiopra, veja se funciona dessa forma:

Código: Selecionar todos
SELECT
'Prontuário: '    || x.nr_prontuario    ||
' Paciente: '     || x.nm_pessoa_fisica ||
' Médico Resp.: ' ||substr(obter_nome_pf(x.cd_medico_resp),1,50) nm_medico,
' Data da Solicitação de Cópia: ' || To_Char(y.dt_alerta,'dd/mm/yyyy hh24:mi:ss') || chr(13)
from
(select b.cd_pessoa_fisica,
         b.nr_prontuario,
         b.nm_pessoa_fisica,
         rank () over (partition by b.nr_prontuario order by f.id_atendimento desc) as rnk,
         f.cd_medico_resp
  from   pessoa_fisica b,
         atendimento_paciente f
  where  b.cd_pessoa_fisica   = f.cd_pessoa_fisica AND
         b.cd_estabelecimento = 1) x,
(select a.cd_pessoa_fisica,
         a.dt_alerta
  from   alerta_paciente a
  where  To_date(a.dt_alerta) = trunc(SYSDATE) AND
         a.nr_seq_tipo_alerta = 1) y
where x.rnk              = 1 AND
      x.cd_pessoa_fisica = y.cd_pessoa_fisica
souldeath
Localização: Campinas

Mensagemem Qua, 21 Set 2016 1:34 pm

Manooooo se é loco, rodou lisinho, só tive q mudar o f.id_atendimento pelo f.nr_atendimento, tudo certo cara valeu mesmo, a query ta demorando uns 6 segundos pra rodar mas ta top


valeuu abração você é demais
jiopra



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes