› Fóruns › SQL e PL/SQL › Dúvida subselect com max e agrupamento › Dúvida subselect com max e agrupamento
@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