View com IF
Boa tarde galera.
Construí uma View que está funcionando:
select t.id_tramitacao AS id_tram,p.id_protocolo AS id_prot,p.protocolo AS num_prot,p.id_contrib AS id_contrib,p.numero_doc AS num_doc,c.fnome AS nome,c.lnome AS sobrenome,p.assunto AS assunto,t.id_setor_origem AS id_setor_rem,s1.sigla AS sigla_rem,serv1.fnome AS serv_rem,t.id_setor_destino AS id_setor_dest,s2.sigla AS sigla_dest,s2.id_estrutura AS id_estrutura,serv2.fnome AS serv_dest,t.data_tramitacao AS data from (((((radocs.tbl_prot_tramitacoes t left join radocs.tbl_setores s2 on((t.id_setor_destino = s2.id_setor))) left join radocs.tbl_servidores serv2 on((t.id_serv_recebe = serv2.id_servidor))) join ((radocs.tbl_protocolos p left join radocs.tbl_contribuintes c on((p.id_contrib = c.id_contrib)))) join radocs.tbl_servidores serv1) join radocs.tbl_setores s1) where ((t.id_protocolo = p.id_protocolo) and (t.id_serv = serv1.id_servidor) and (t.id_setor_origem = s1.id_setor))
Acontece que, dependendo do que for encontrado id_estrutura ( s2.id_estrutura AS id_estrutura ) que pode ser NULL ou não, eu preciso buscar o nome do servidor em tabelas distintas.
Do jeito q tá o nome vem da tabela SERVIDORES, tbl_servidores que no código eu procuro em left join radocs.tbl_servidores serv2 on((t.id_serv_recebe = serv2.id_servidor))
Caso o id_estrutura seja NOT NULL, ok, ta dando certo, mas se for NULL essa condição deve ser alterada para a tabela tbl_recebedores left join radocs.tbl_recebedores rec on((t.id_serv_recebe = rec.id_recebedor))
eu preciso de algo como:
if id_estrutura IS NOT NULL
left join radocs.tbl_servidores serv2 on((t.id_serv_recebe = serv2.id_servidor))
ELSE
left join radocs.tbl_recebedores rec on((t.id_serv_recebe = rec.id_recebedor))
estou errando a sintaxe.
Discussão (4)
Carregando comentários...