Busca maior valor para cada registro - SQL
26/05/2020
0
Srs,
Estou iniciando no SQL então me perdoem caso a dúvida seja muito básica.
Preciso fazer uma busca em duas colunas na minha tabela:
Coluna 1 = Identificador
Coluna 2 = Origem
Preciso mostrar a Origem mais atual para cada identificador
Ex. de dados da tabela:
Identificador X possui Origem 0013 e 0089
Identificador Y possui Origem 0189, 0345, 0893 e 0235
ao fazer o select, preciso que ele me traga:
Identificador X -> Origem 0089
Identificador Y -> Origem 0893
ao usar o select top ou select max, só consigo que ele traga a maior origem da tabela inteira, quando na verdade preciso que ele me traga para cada Identificador.
Obs.: O campo Origem é um varchar sequencial, logo, quanto maior mais atual.
Agradeço a ajuda
Estou iniciando no SQL então me perdoem caso a dúvida seja muito básica.
Preciso fazer uma busca em duas colunas na minha tabela:
Coluna 1 = Identificador
Coluna 2 = Origem
Preciso mostrar a Origem mais atual para cada identificador
Ex. de dados da tabela:
Identificador X possui Origem 0013 e 0089
Identificador Y possui Origem 0189, 0345, 0893 e 0235
ao fazer o select, preciso que ele me traga:
Identificador X -> Origem 0089
Identificador Y -> Origem 0893
ao usar o select top ou select max, só consigo que ele traga a maior origem da tabela inteira, quando na verdade preciso que ele me traga para cada Identificador.
Obs.: O campo Origem é um varchar sequencial, logo, quanto maior mais atual.
Agradeço a ajuda
Luciano
Curtir tópico
+ 0
Responder
Post mais votado
26/05/2020
Olá, Luciano, tudo bem?
Vi seu questionamento e espero conseguir lhe ajudar.
Você foi no caminho certo, usando o "método" MAX(), mas o que na verdade faltou foram as condições.
Ex. de dados da tabela:
Identificador X possui Origem 0013 e 0089
Identificador Y possui Origem 0189, 0345, 0893 e 0235
ao fazer o select, preciso que ele me traga:
Identificador X -> Origem 0089
Identificador Y -> Origem 0893
Pense em resolver o problema separado e depois caso queira une eles com UNION ou Subquerys.
SELECT MAX(Origem) FROM identificador WHERE identificador = 'X';
SELECT MAX(Origem) FROM identificador WHERE identificador = 'Y';
Espero ter ajudado.
Vi seu questionamento e espero conseguir lhe ajudar.
Você foi no caminho certo, usando o "método" MAX(), mas o que na verdade faltou foram as condições.
Ex. de dados da tabela:
Identificador X possui Origem 0013 e 0089
Identificador Y possui Origem 0189, 0345, 0893 e 0235
ao fazer o select, preciso que ele me traga:
Identificador X -> Origem 0089
Identificador Y -> Origem 0893
Pense em resolver o problema separado e depois caso queira une eles com UNION ou Subquerys.
SELECT MAX(Origem) FROM identificador WHERE identificador = 'X';
SELECT MAX(Origem) FROM identificador WHERE identificador = 'Y';
Espero ter ajudado.
Gustavo Mendes
Responder
Mais Posts
26/05/2020
Emerson Nascimento
select identificador, max(origem) maior_origem from tabela group by identificador
Responder
27/05/2020
Luciano
select identificador, max(origem) maior_origem from tabela group by identificador
Obrigado amigo, funcionou perfeitamente!
Responder
Clique aqui para fazer login e interagir na Comunidade :)