Ir para conteúdo

POWERED BY:

Arquivado

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

larkante

Como ordenar dois campos ao mesmo tempo?

Recommended Posts

Desculpe pessoal não soube como colocar o título melhor. A minha situação é a seguinte:

 

- Tenho uma tabela e dois campos, Status Int(1) e Valor Int(10);

- Preciso que o campo Valor se ordene ASC de acordo com o valor de Status que também deve se ordenar ASC..

 

Ex.:

Status | Valor

1 | 560

0 | 180

0 | 213

2 | 800

1 | 452

1 | 150

 

 

O campo Valor deve se ordenar e separar dependendo do campo Status

Ex.:

Status | Valor

0 | 180

0 | 213

1 | 150

1 | 452

1 | 560

2 | 800

 

Eu tentei com Union, mas ele não deixa ASC o campo Valor:

(SELECT * FROM tabela WHERE status = 0 ORDER BY valor ASC)
UNION
(SELECT * FROM tabela WHERE status = 1 ORDER BY valor ASC)
UNION
(SELECT * FROM tabela WHERE status = 2 ORDER BY valor ASC)

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM tabela ORDER BY valor ASC,status asc

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM tabela ORDER BY valor ASC,status asc

 

Motta não é tão simples.. preciso que o campo Valor se ordene mas de acordo com o campo Status, como se fosse ordenado separadamente.

Seguindo meu exemplo.:

para Status = 0, ordenar Valor ASC -> 180 | 213

para Status = 1, ordenar Valor ASC -> 150 | 452 | 560

...

Veja que a ordem do campo Valor precisa ser separada de acordo com o campo Status.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

ORDER BY status asc,valor ASC

?

 

Dessa forma não funciona.

 

Vou dar outro exemplo, Tenho uma tabela Corrida e nela tenho o campo Grupo, Corredor e Distancia, preciso que a consulta gere uma espécie de ranking ordenando pelo número do grupo e pela distância percorrida por cada participante do grupo.

 

 

Ex.:

Grupo | Corredor | Distancia

1 | Augusto | 560

0 | José | 180

1 | Luciano | 452

0 | Henrique | 213

2 | Paulo | 800

1 | Léo | 150

 

 

Preciso de Um ranking de Grupo e também de um ranking da Distancia de cada participante do grupo.

Ex.:

 

Grupo | Corredor | Distancia

0 | José | 180

0 | Henrique | 213

 

1 | Léo | 150

1 | Luciano | 452

1 | Augusto | 560

 

2 | Paulo | 800

Compartilhar este post


Link para o post
Compartilhar em outros sites
ORDER BY Grupo , Distancia

não funciona ?!

 

veja também se algo neste tópico ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

ORDER BY Grupo , Distancia

não funciona ?!

 

veja também se algo neste tópico ajuda.

 

Não funciona porque não faz a ordenação da distância dos corredores, somente do grupo.

 

Order by direto nos dois campos ficaria assim:

 

 

Grupo | Corredor | Distancia

0 | José | 180

0 | Henrique | 213

1 | Augusto | 560

1 | Luciano | 452

1 | Léo | 150

2 | Paulo | 800

 

Com Php eu já consegui, só queria saber se tinha como fazer diretamente via sql, mas não deve ter como.

 

Obrigado Motta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao entendi pq o grupo 1 ficou descendente na distancia mas ok.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao entendi pq o grupo 1 ficou descendente na distancia mas ok.

 

Estava estranho mesmo Motta, então fiz um teste com outra tabela e funcionou. Meu problema é que meu campo Distancia estava varchar x.x . Aí não dava certo mesmo.

 

Assim funciona desde que o campo seja INT:

SELECT * FROM corrida ORDER BY grupo ASC, distancia ASC

 

Obrigado.

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.