Ir para conteúdo

POWERED BY:

Arquivado

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

mwitte

[Resolvido] Não consigo "ordenar" do maior para o menor..

Recommended Posts

Ola grandes colegas, estou eu aqui novamente buscando um help para uma questão que me parece simples, mas não estou conseguindo resultados práticos no forma que desejo.

 

Seguem os exemplos.

 

O Código:

include("includes/all_conn.php");
$ano = '2010';
$query = mysql_query('SELECT * FROM tbl_ticket WHERE ticket_ano="2010" GROUP BY ticket_empresa_id LIMIT 20') or die(mysql_error());
$total = mysql_num_rows( $query );

while ($row0 = mysql_fetch_assoc($query)) {
$a = $row0['ticket_empresa_id'];
$sqlq = sprintf('SELECT * FROM tbl_ticket WHERE ticket_empresa_id=%s AND ticket_ano=%s',$a,$ano);
$queryq = mysql_query( $sqlq ) or die( mysql_error() );
$totalq = mysql_num_rows( $queryq );
echo 'Id: '.$a.' - Total: '.$totalq.'<br>';
}

O Resultado:

Id: 1000 - Total: 11

Id: 1001 - Total: 61

Id: 1002 - Total: 4

Id: 1003 - Total: 15

Id: 1004 - Total: 79

Id: 1006 - Total: 28

Id: 1007 - Total: 1

Id: 1008 - Total: 4

Id: 1009 - Total: 7

Id: 1010 - Total: 3

Id: 1011 - Total: 10

Id: 1012 - Total: 178

Id: 1013 - Total: 13

Id: 1014 - Total: 30

Id: 1015 - Total: 1

Id: 1016 - Total: 6

Id: 1017 - Total: 9

Id: 1018 - Total: 5

 

 

Em suma, esse resultado seria um TOP20, mas retornaria do maior valor para o menor, e isso não estou conseguindo por nada :(

 

Então meus caros, conto mais uma vez com um Help de VCs.

 

Grato

Michel de Witte

Compartilhar este post


Link para o post
Compartilhar em outros sites

ORDER BY tabela.coluna DESC

Obs: ORDER BY é a última cláusula. Após este, somente use LIMIT.

 

SELECT

FROM

WHERE

GROUP BY

ORDER BY

LIMIT

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ricardo e Jaime, obrigado pela ajuda, mas acho que vcs não leram o codigo ou não entenderam o problema.

 

ORDER BY realmente ajudaria se o resultado estivesse dentro da Tabela Ticket e se não fosse necessario o sumarização deste atraves do conjunto While.

 

O grande problema é que preciso Ordenar do maior pro menor, após a sumerização, eu até tentei isso:

while ($row0 = mysql_fetch_assoc($query)) {
$a = $row0['ticket_empresa_id'];
$sqlq = sprintf('SELECT *, SUM(ticket_id)AS tmp FROM tbl_ticket WHERE ticket_empresa_id=%s AND ticket_ano=%s ORDER BY tmp DESC',$a,$ano);
$queryq = mysql_query( $sqlq ) or die( mysql_error() );
$totalq = mysql_num_rows( $queryq );

Mas não rola......

 

De qualquer forma Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz acho que achei uma solução...

 

SELECT ticket_empresa_id, COUNT(ticket_empresa_id) 
FROM tbl_ticket GROUP BY ticket_empresa_id 
WHERE ano='2010' 
ORDER BY COUNT(ticket_empresa_id) ASC ou DESC;

 

quase certeza que isso resolve seu problema!

só faltou botar o LIMIT hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites


include("includes/all_conn.php");

$ano = '2010';

$query = mysql_query('SELECT ticket_empresa_id, count(*) as total FROM tbl_ticket WHERE ticket_ano={$ano} GROUP BY ticket_empresa_id order by count(*) desc LIMIT 20') or die(mysql_error());

while ($row = mysql_fetch_assoc($query)) {

$id = $row['ticket_empresa_id'];

$total = $row['total'];

echo 'Id: '.$id.' - Total: '.$total.'<br>';

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ricardo e Jaime, obrigado pela ajuda, mas acho que vcs não leram o codigo ou não entenderam o problema.

 

ORDER BY realmente ajudaria se o resultado estivesse dentro da Tabela Ticket e se não fosse necessario o sumarização deste atraves do conjunto While.

 

O grande problema é que preciso Ordenar do maior pro menor, após a sumerização, eu até tentei isso:

while ($row0 = mysql_fetch_assoc($query)) {
$a = $row0['ticket_empresa_id'];
$sqlq = sprintf('SELECT *, SUM(ticket_id)AS tmp FROM tbl_ticket WHERE ticket_empresa_id=%s AND ticket_ano=%s ORDER BY tmp DESC',$a,$ano);
$queryq = mysql_query( $sqlq ) or die( mysql_error() );
$totalq = mysql_num_rows( $queryq );

Mas não rola......

 

De qualquer forma Obrigado.

 

Caro amigo, sumerização é algo novo em seu problema. Não havia mencionado isso antes.

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.