Jump to content


Photo

Exibir Um Ranking A Partir Da Soma De Uma Coluna


  • Faça o login para participar
2 replies to this topic

#1 fdebortoli

fdebortoli

    12 Horas

  • Usuários
  • 250 posts
  • Sexo:Masculino
  • Localidade:Joinville-SC

Posted 26/06/2007, 09:13

Olá povo, seguinte:
Eu tenho 2 tabelas no meu BD ... uma delas se chama profissionais, que tem 2 colunas: profissionalID, nome_profissional ... e outra chamada formularios, que tem 3 colunas: formID, pontos, profissionalID. Eu queria exibir no meu site o seguinte resultado:

Uma tabela com 3 colunas: o nome do profissional, o seu total de pontos, e sua colocação no ranking, por ordem de maior pontuação.

COmo seria essa SQL? :wacko:

Edição feita por: fdebortoli, 26/06/2007, 09:14.


#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 28/06/2007, 23:40

Você pode fazer algo como:

select
	 p.nome_profissional
	,sum(f.pontos) pontos
from profissionais p
	natural join formularios f
group by f.profissionalID
order by pontos desc

Não sei se tem algum critério de desempate, enfim, está ordenado pela pontuação.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 gwandre

gwandre

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 23/08/2007, 07:51

Olá amigo, a resposta do nosso amigo Eclesiastes é a mais adequada, porém, você também pode fazer de outra forma, sendo que esta traria uma maior carga ao banco de dados, porém, estou expondo apenas para aumentar possibilidades no forum:

SELECT * FROM (
SELECT
p.nome_profissional,
(select sum(pontos) from formularios f where f.profissionalId=p.profissionalId) as totalPontos
FROM
profissionais p
) As tabTemp
ORDER BY
tabTemp.totalPontos DESC




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq