Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 63

Valor maior de um GROUP BY

14-04-2011 16:55

Pessoal boa tarde!
Eu tenho um SQL que esta funcionando legal, estou utilizando um GROUP BY para que nessa tabela não repita o nome da mesma pessoa no caso um competidor, o mesmo competidor não pode ficar em 1 e 2 lugar, já esta funcionando assim porem ele esta pegado o menor valor de pontos desse competidor e o que eu preciso e fazer pegar o maior valor, no caso do SQL o maior valor esta no r.db, se alguem puder me ajudar eu vou agradecer muito.

Abaixo segue o SQL.

$sql2 = 'SELECT r.competidor, r.id, r.modalidade, r.cidade, r.loja, r.carro, r.amplificador, r.falante, r.bateria,  r.player, r.db, r.local_evento, r.id_tipo_rkg FROM ranking r WHERE r.modalidade = \''.$id_mod.'\' GROUP BY r.competidor ORDER BY r.db DESC LIMIT 10';

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17615
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Valor maior de um GROUP BY

14-04-2011 17:09

Tenta
ORDER BY r.db ASC
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 63

Valor maior de um GROUP BY

14-04-2011 17:42

Então já tentei isso e o mais estranho é que acontece o seguinte, na tabela que estou tendo esse problema tem um competidor que se eu tirar o GROUP BY fica assim:

fulano de tal 152,9 pontos
fulano de tal 151,9 pontos
fulano de tal 150,9 pontos

Agora se eu colocar o GROUP BY e o r.db em ASC ele fica assim:
fulano de tal 150,9 pontos

Não é estranho? ele não devia aparecer o 152,9? Eu estava lendo alguma coisa na internet sobre o MAX mas não sei como aplica-lo.

Se alguem puder ajudar ficarei grato.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17615
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Valor maior de um GROUP BY

14-04-2011 17:56

Para usar o MAX do MySQL, você tem que ter valores com ponto e não vírgula, tipo

10.12
100.32
etc...

Para usar o MAX sua query deve ser mais ou menos assim

SELECT seugrupo, MAX(valor) AS maximo FROM produtos GROUP BY seugrupo

No seu while, você usa o $maximo para obter o item mais caro daquele grupo.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 63

Valor maior de um GROUP BY

14-04-2011 18:32

Será que essa é a unica solução para isso, apareceu isso depois que o cliente ja digitou mais de 1000 resultados.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17615
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Valor maior de um GROUP BY

14-04-2011 18:37

Não entendi. :?:
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 63

Valor maior de um GROUP BY

14-04-2011 19:40

O site ja esta no ar, funcionando, e o cadastro dos resultados estão todos com virgula.
Esse é o SQL que esta no site:

$sql2 = 'SELECT r.competidor, r.id, r.modalidade, r.cidade, r.loja, r.carro,  r.amplificador, r.falante, r.bateria, r.player, r.db, r.local_evento, r.id_tipo_rkg FROM ranking r WHERE r.modalidade = \''.$id_mod.'\' GROUP BY r.competidor ORDER BY r.db DESC LIMIT 10'; 

Mas como falei não esta repetindo o competidor, como eu queria, mas esta mostrando o resultado menor e não o maior.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17615
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Valor maior de um GROUP BY

14-04-2011 19:44

Porque você não faz um update nas colunas trocando a vírgula por um ponto? Acho que você pode fazer um replace na própria query também.

Tentou com a base que indiquei? Se funcionou ai, é uma boa você fazer esse update ou o replace.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 63

Valor maior de um GROUP BY

14-04-2011 19:57

Ta certo vou fazer isso e amanha eu falo se deu certo.

Valeu pela ajuda.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17615
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Valor maior de um GROUP BY

14-04-2011 19:59

Blz.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 63

Valor maior de um GROUP BY

15-04-2011 16:23

Opa amigo, deu certo, fiz um upload da tabela substituindo as virgulas por pontos, criei uma função no admin para transformar as virgulas em pontos na hora que o cliente cadastrar e o SQL ficou assim

$sql2 = 'SELECT MAX(db) AS db, competidor, id, modalidade, cidade, loja, carro,  amplificador, falante, bateria, player, local_evento, id_tipo_rkg FROM ranking WHERE modalidade = \''.$id_mod.'\' GROUP BY competidor ORDER BY db DESC LIMIT 10'; 

Funcionou perfeitamente, valeu!

Obs: to gostando muito desse forum as soluções para alguns problemas estão se resolvendo com grande ajuda. valeu a todos.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17615
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Valor maior de um GROUP BY

15-04-2011 16:29

Boa.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado