Estou com dificuldades em montar uma query para a seguinte necessidade:
Eu tenho números repetidos para diferentes códigos e preciso retornar somente o número que tem o maior código.
Mais o maior problema é que não quero 1 linha de retorno, preciso que essa query faça isso e me retorne TODOS os números com seus maiores códigos.
Não sei se consegui ser claro…
Nessa query:
SELECT codigo, numero
FROM minhaTabela WHERE numero = '100'
AND codigo = (SELECT MAX(codigo) FROM minhaTabela WHERE numero = '100');
consigo recuperar a informação mais informando o número, essa query vai me retornar o numero 100 com seu maior código…
Mais preciso de uma query que me retorne os valores sem precisar informar o número.
Você tem a seguinte tabela:
Numero Codigo
100 123
100 1234
100 12345
200 234
200 2345
200 23456
400 111
400 2222
E você quer uma consulta que volte:
100 12345
200 2345
400 2222
Ou seja, para todos os números que têm códigos, voltar o maior código para cada número
R
RodrigoM91
Oi entanglement,
É exatamente isso.
E
entanglement
Infelizmente não estou com um SQL fácil para testar uma query aqui, mas acho que envolve algo com GROUP BY e MAX.
D
dan20
SELECT numero, MAX(codigo) FROM minhaTabela GROUP BY numero
R
RodrigoM91
dan20,
É isso mesmo funcionou, no caso se eu quiser adicionar mais colunas eu tenho que agrupar todas elas?
#EDIT
Fiz um teste aqui se agrupar todas as colunas não vai trazer o resultado esperado, tem outro jeito para que eu posso adicionar mais campos no resultado?
Esperava incluir mais campos no resultado por exemplo:
Codigo Numero Valor Ocorrencia
100 12345 300,00 7
200 2345 100,00 9
400 2222 200,00 8
Os outros campos não precisam ser ordenados…
Pelo que vi pra eu adicionar mais campos tenho que adicionar funções nesses campos?
D
dan20
Não necessariamente, você não precisa agrupar as outras colunas, acho que no seu caso é só adicionar na cláusula SELECT mesmo as colunas que deseja e deixar o agrupamento somente pela coluna número
E
entanglement
Retornando ao problema dele:
Numero Codigo Nome
100 123 Edgard
100 1234 Fabiana
100 12345 Gisele
200 234 Haroldo
200 2345 Inácio
200 23456 Joaquina
400 111 Kátia
400 2222 Leopoldina
E o resultado que você quer é
Numero Codigo Nome
100 12345 Gisele
200 23456 Joaquina
400 2222 Leopoldina
É isso?
R
RodrigoM91
entanglement,
Novamente, exato…
#EDIT
Lembrando que não necessariamente a coluna nome precisa estar ordenada.