Pular para o conteúdo

Fóruns SQL e PL/SQL Dúvida subselect com max e agrupamento Dúvida subselect com max e agrupamento

#106188
Avatar photoRegis Araujo
Participante

    @Gustavo

    Boa tarde!

    O Exists não funciona igual ao IN, então não adianta vc colocar o MAX na clausula do select, pois ele vai usar apenas boolean se existir relação entre a tabela referenciada e a tabela do exists, irá retornar informações.

    Tanto que costuma-se usar o “.. exists (select 1 from tabela a where a.campo = out.campo) ..”…

    Para você pegar apenas o ultimo registro, você irá precisar usar o MAX como parâmetro de comparação na query ao invés do exists informado…

    Ex:

    ” SELECT NUM_ORCAMENTO FROM TAB_TRANSACAO_GARANTECH TBOUT WHERE TBOUT.DT_TRANSACAO = (SELECT MAX(TBIN.DT_TRANSACAO) FROM TAB_TRANSACAO_GARANTECH TBIN WHERE TBOUT.NUM_ORCAMENTO = TBIN.NUM_ORCAMENTO)
    AND TBOUT.NUM_ORCAMENTO = 957517 ”

    Como você havia informado que existe o mesmo número de orçamento mas com datas diferentes, este relacionamento irá retornar apenas o NUM_ORCAMENTO com data maior…

    Espero que tenha lhe ajudado..

    A Disposição.

    Regis Araujo