Bom dia!
Tenho uma view que me trás todos os procedimentos realizados em um hospital.
Existem pacientes que fazem o procedimento Consulta_Ambulatorial e depois realiza outros procedimentos de exame(ex: endoscopia).
Existem pacientes que não realizam Consulta_Ambulatorial mas realizam outros exames(ex: exame de sangue).
Eu preciso realizar uma consulta que verifique se: Paciente fez consulta ambulatorial ? imprime consulta e os outros exames realizados.
Não fez consulta ambulatorial ? não imprime.
Tentei utilizar as instruções IF-THEN-ELSE mas não tive sucesso.
Alguém pode me dar uma luz?
Erro retorno consulta
-
- Rank: Programador Júnior
- Mensagens: 20
- Registrado em: Sáb, 06 Ago 2016 9:22 am
- Localização: Joinville-SC
- Contato:
Geovani Cristofolini
Consultor de Business intelligence
http://useweknow.com
Consultor de Business intelligence
http://useweknow.com
Opa!
Veja se assim lhe ajuda.
Se for um codigo SQL, no where você valida se existe para o mesmo paciente o procedimento de avaliação ambulatorial.
Exemplo:
Veja se assim lhe ajuda.
Se for um codigo SQL, no where você valida se existe para o mesmo paciente o procedimento de avaliação ambulatorial.
Exemplo:
and exists (select 1 from view view2 where view2.cd_paciente = view1.cd_paciente and view1.ds_procedimento = 'Avaliação Ambulatorial)
-
- Rank: Programador Júnior
- Mensagens: 20
- Registrado em: Sáb, 06 Ago 2016 9:22 am
- Localização: Joinville-SC
- Contato:
Geovani Cristofolini
Consultor de Business intelligence
http://useweknow.com
Consultor de Business intelligence
http://useweknow.com
ops.. Corrigindo...
Se for um codigo SQL, no where você valida se existe para o mesmo paciente o procedimento de Consulta Ambulatorial
Exemplo:
Se for um codigo SQL, no where você valida se existe para o mesmo paciente o procedimento de Consulta Ambulatorial
Exemplo:
and exists (select 1 from view view2 where view2.cd_paciente = view1.cd_paciente and view1.ds_procedimento = 'Consulta_Ambulatorial')
Opa, vou testar e já já dou um retorno.
-
- Rank: Programador Júnior
- Mensagens: 20
- Registrado em: Sáb, 06 Ago 2016 9:22 am
- Localização: Joinville-SC
- Contato:
Geovani Cristofolini
Consultor de Business intelligence
http://useweknow.com
Consultor de Business intelligence
http://useweknow.com
Puts.. mais uma correção, desculpe
and exists (select 1 from view view2 where view2.cd_paciente = view1.cd_paciente and view2.ds_procedimento = 'Consulta_Ambulatorial')
Obrigado pelo retorno, vou verificar.
O resultado foi semelhante ao um do in/ not in.
select
trunc(a.dt_procedimento) dt_procedimento,
obter_nome_paciente(a.nr_atendimento) nm_paciente,
a.nm_medico_executor,
obter_nome_medico(a.cd_medico,'n') nm_medico,
obter_desc_setor_atend(a.cd_setor_atendimento) setor_atend,
a.ds_procedimento
from
procedimento_paciente_v a
where
a.dt_procedimento between TO_DATE('12/06/2017 ','dd/mm/yyyy hh24:mi:ss') and TO_DATE('12/06/2017 23:59:59','dd/mm/yyyy hh24:mi:ss')
and cd_setor_atendimento in (123,29,118,29,30,22,123,17,49,31,122,56,61,99,4,95,125,50,18)
and exists (select b.ds_procedimento from procedimento_paciente_v b where b.nr_sequencia = a.nr_sequencia and b.ds_procedimento = 'Consulta Ambulatorial')
--and a.cd_procedimento in (10101012,10014)
order by 2,3
-
- Rank: Programador Júnior
- Mensagens: 20
- Registrado em: Sáb, 06 Ago 2016 9:22 am
- Localização: Joinville-SC
- Contato:
Geovani Cristofolini
Consultor de Business intelligence
http://useweknow.com
Consultor de Business intelligence
http://useweknow.com
Bom dia,
Agora com o código ficou mais fácil de compreender.
Você está usando
Se os exames são referentes ao mesmo atendimento, use o nr_atendimento para fazer a ligação, se for em atendimentos diferentes, você terá que fazer a ligação usando o codigo do paciente e os mesmos filtros de data e setor.
Veja abaixo validando no mesmo atendimento.
Agora com o código ficou mais fácil de compreender.
Você está usando
b.nr_sequencia = a.nr_sequencia
para fazer a ligação entre as duas tabelas por isso não está dando certo.Se os exames são referentes ao mesmo atendimento, use o nr_atendimento para fazer a ligação, se for em atendimentos diferentes, você terá que fazer a ligação usando o codigo do paciente e os mesmos filtros de data e setor.
Veja abaixo validando no mesmo atendimento.
select
trunc(a.dt_procedimento) dt_procedimento,
obter_nome_paciente(a.nr_atendimento) nm_paciente,
a.nm_medico_executor,
obter_nome_medico(a.cd_medico,'n') nm_medico,
obter_desc_setor_atend(a.cd_setor_atendimento) setor_atend,
a.ds_procedimento
from
procedimento_paciente_v a
where
a.dt_procedimento between TO_DATE('12/06/2017 ','dd/mm/yyyy hh24:mi:ss') and TO_DATE('12/06/2017 23:59:59','dd/mm/yyyy hh24:mi:ss')
and cd_setor_atendimento in (123,29,118,29,30,22,123,17,49,31,122,56,61,99,4,95,125,50,18)
and exists (select b.ds_procedimento from procedimento_paciente_v b where b.nr_atendimento = a.nr_atendimento and b.cd_procedimento = 10101012)
and a.cd_procedimento in (10101012,10014)
order by 2,3
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes