Ir para conteúdo

POWERED BY:

Arquivado

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

manga

Select com Join, Count e Group By

Recommended Posts

Pessoal, estava tentando fazer um select meio enrolado: tenho uma tabela que tem um campo numérico chamado "tipo". Preciso contar quantos "tipos" iguais tem na tabela e ordenar o Recordset pela quantidade de cada tipo em ordem decrescente. Até aí é fácil:"SELECT DISTINCT tipo, count(*) as total FROM tabela GROUP BY tipo ORDER BY count(*) DESC"Porém, o campo tipo é um código, e eu preciso exibir o nome desse código que está em outra tabela. Aí a coisa enrola. Tentei assim:"SELECT DISTINCT a.tipo, a.count(*) as total, b.nome FROM tabela a, tabela1 b WHERE a.tipo = b.id GROUP BY a.tipo ORDER BY a.count(*) DESC"Isso gera um erro: sintaxe error near '*'.Eu resolvi com 2 Recordsets, mas estou curioso para saber se dá prá fazer com um único SELECT.Alguém sabe?Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehe, você precisa identificar qual campo será usado no count.. e nao *.. provavelmente o erro era só por isso mesmoabraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kdu, realmente o DISTINCT é supérfluo. Dark, o erro não estava no * e sim na sintaxe: eu estava usando a.count(*) e o certo é count(a.*).

 

Como eu disse acima a sintaxe correta para esse SELECT é:

"SELECT DISTINCT a.tipo, count(a.id) as total, b.nome FROM tabela a, tabela1 b WHERE a.tipo = b.id GROUP BY a.tipo, b.nome ORDER BY count(a.id) DESC"

 

Valeu

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.