[RESOLVIDO] Select MYSQL

Bom dia!

SELECT id_projeto, id_revisao, data, codigo
FROM revisao
GROUP BY id_projeto;

Como um exemplo, eu queria que com o id projeto fosse mostrado o item com maior id revisao, no caso só mostraria o id projeto 8 que tivesse o maior id revisao que no caso seria o 19, o id projeto 1 só iria mostrar a linha que tivesse o id revisao 5, já que é a maior e assim em diante.

to dando um group by mas ele me dá o primeiro item de cada projeto e não o ultimo que seria o que eu iria precisar, se eu der um order by ele inverte todos os dados do resultado e não me dá o com maior id, já tentei dar um max(colum ) mas ai só me da o id e não o restante das colunas, algúem poderia ajudar?

d

utilize max(id_revisao)

1 curtida

Quando eu dou o max (id_revisão) realmente ele me dá o máximo mas as outras colunas não acompanham o código e a data mostram como se fosse o primeiro valor, ao invés de mostrar código e data do id_revisao 19 ele mostra do id_revisao 4

e

Coloque o max na data tambem, se voce quer sempre o maior, tem que colocar o max nos campos e voce nao precisa do group by

1 curtida

mas eu quero os dados do maior id_revisao daquele id_projeto, desse modo não vai me dar os maiores dados de toda a tabela não?

Já tentei dar um select where id_revisao = max(id_revisao) group by id_projeto, pra pegar cada coluna que eu quero, mas ai ele não reconhece a função max no where

Tenta assim:

SELECT
	id_projeto,
	data,
	codigo,
	grd,
	MAX(id_revisao)
FROM revisao
GROUP BY
	id_projeto,
	data,
	codigo,
	grd
1 curtida

Assim ele não agrupou:

Tópico duplicado?

Iria fazer a pergunta a pergunta em outro tópico mas vi que deveria ser em outro então coloquei como solucionado e fiz esse com a outra consulta que eu estava precisando.

Muito obrigado, a forma que você havia me passado estava ordenando com a maior data, ai só foi substituir pelo maior id_revisao e deu certo.

i

1 curtida