Criar Consulta MAX com codiçoes IF

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

Ola, bom dia

Estou travado aqui, preciso criar uma consulta, utilizando o MAX onde tenho critérios para esta consulta, dependendo da cidade.

Tenho uma ITEM DE APLICAÇÃO (g_id_cidade) é carregado ao logar, preciso do seguinte:

Selecionar tudo

IF :G_ID_CIDADE = 7 THEN 
     (SELECT MAX(NUMERO_PORTARIA + 1) FROM PORTARIA_VIAGEM)
END
IF :G_ID_CIDADE = 8 THEN 
     (SELECT MAX(NUMERO_PORTARIA + 2) FROM PORTARIA_VIAGEM)
END
Preciso buscar o ultimo numero de portaria de uma tabela, conforme o IF.

alguém pode me ajudar, por favor... agradeço
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

so uma correção na ideia do codigo que preciso:

Selecionar tudo

IF :G_ID_CIDADE = 7 THEN 
(SELECT MAX(NUMERO_PORTARIA + 1) FROM PORTARIA_VIAGEM where id_cidade = :g_id_cidade)
END
IF :G_ID_CIDADE = 8 THEN 
(SELECT MAX(NUMERO_PORTARIA + 1) FROM PORTARIA_VIAGEM where id_cidade = :g_id_cidade and id_orgao = :g_id_orgao)
END
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Olá,

pelo que entendi tu queres rodar isso numa consulta SQL. Então basta substituir teu IF por CASE:

Selecionar tudo

SELECT
CASE WHEN :G_ID_CIDADE = 7 THEN 
(SELECT MAX(NUMERO_PORTARIA + 1) FROM PORTARIA_VIAGEM where id_cidade = :g_id_cidade)
WHEN :G_ID_CIDADE = 8 THEN 
(SELECT MAX(NUMERO_PORTARIA + 1) FROM PORTARIA_VIAGEM where id_cidade = :g_id_cidade and id_orgao = :g_id_orgao)
END MY_MAX
FROM ...
carlynhos77
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 172
Registrado em: Seg, 24 Out 2016 7:20 pm

Ola,boa noite

Isso mesmo DANIEL, problema resolvido. muito obrigado
Responder
  • Informação
  • Quem está online

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