Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

andersonb8

Consulta com ORDER BY e GROUP BY

Recommended Posts

"SELECT * FROM (SELECT * FROM tbl_os_status ORDER BY id DESC) sub_query GROUP BY numero_os ORDER BY id DESC"

Estou tendo problemas com essa consulta em alguns servidores mysql.

Como ficaria esta query para ser totalmente compatível com outras versões do mysql?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Motta, porém eu preciso agrupar também pelo número da os.

Se eu colocar somente:

SELECT * FROM tbl_os_status GROUP BY número_os

ele pega os primeiros resultados e depois agrupa e o que eu preciso é que ele pegue os últimos resultados e depois agrupe.

Alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites
"SELECT * FROM tbl_os_status ORDER BY numero_os,id DESC"

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo mesmo assim não está agrupando, troquei o ORDER BY por GROUP BY, na query que você passou porém não deu certo.

"SELECT * FROM tbl_os_status GROUP BY numero_os,id DESC",

se eu tirar o "id DESC" ele agrupa, porém fica mostrando o primeiro e eu preciso do último resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver usando a query abaixo, depois de muito bater a cabeça encontrei essa query na internet, só tive que adaptar ao meu código, porém estou com dificuldade de entender a condição WHERE de n1.id, se alguém poder me ajudar a interpretar.

Outra coisa como é o nome dado a esse "apelido" usado n1 e n2? Pra eu poder pesquisar mais sobre ele.

SELECT n1.* FROM tbl_os_status n1 WHERE n1.id = (SELECT max(n2.id) FROM tbl_os_status n2 WHERE n2.numero_os = n1.numero_os) ORDER BY n1.id DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.