Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EliseuFirmino

Filtro Query

Recommended Posts

Bom dia.

Estou tentando realizar um filtro como o da linha destacada com os asteriscos, porém ele simplesmente não funciona.

Procurei algum caso parecido, utilizando joins mas não encontrei nada na internet.

select distinct substr(obter_nome_setor(o.cd_setor_atendimento),1,250) ds_setor_atendimento,

    o.cd_unidade_basica || ' ' || o.cd_unidade_compl cd_unidade, 
    decode(o.ie_status_unidade, 'R', '(Reserva '|| o.nm_paciente_reserva ||')', 'A', '(Paciente no leito)', 'H', '(Higienização)', 'I','(Interditado)','O','(Isolado)',o.nm_pessoa_fisica) nm_paciente,
    decode(ACC.NR_ACOMPANHANTE , 1 , 'Sim', 0, 'Não',2 , 'Sim', NULL , 'Não',3 , 'Sim') dir_acomp,
    '(     )' cp_select, '________________________________________________' cp_linha,
    o.nr_atendimento, o.ds_convenio,
O.dt_entrada dt_atendimento
from    ocupacao_unidade_v o 
       left join atend_categoria_convenio ACC 
          on O.NR_ATENDIMENTO=ACC.NR_ATENDIMENTO 
where  obter_classif_setor(cd_setor_atendimento) in (3,4)
and    (:ie_paciente = 'S' ) 
or    (:ie_paciente = 'N' and cd_pessoa_fisica is not null) 


****and ((:NR_ACOMPANHANTE = 'T') or (decode( acc.NR_ACOMPANHANTE, 1 , 'S', 0, 'N',2 , 'S', NULL , 'N',3 , 'S')=:NR_ACOMPANHANTE))****


order by    ds_setor_atendimento,
    o.cd_unidade_basica || ' ' || o.cd_unidade_compl

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente com CASE

...
((case when acc.NR_ACOMPANHANTE IN (1,2,3) then 'S'
      when acc.NR_ACOMPANHANTE = 0 THEN 'N'
      when acc.NR_ACOMPANHANTE IS NULL THEN 'N'
      ELSE 'S' END) = :NR_ACOMPANHANTE)
...

o problema é o "null" no decode , creio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.