Busca maior valor para cada registro - SQL
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
Curtidas 0
Melhor post
Gustavo Mendes
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.
GOSTEI 1
Mais Respostas
Emerson Nascimento
26/05/2020
select identificador, max(origem) maior_origem from tabela group by identificador
GOSTEI 1
Luciano
26/05/2020
select identificador, max(origem) maior_origem from tabela group by identificador
Obrigado amigo, funcionou perfeitamente!
GOSTEI 0