Ir para conteúdo

POWERED BY:

Arquivado

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

Gans

Problema com SELECT GROUP

Recommended Posts

Olá pessoal, tenho a seguinte situação:

 

O usuário vai ganhando bônus, quando chega a 5 bônus esses 5 bônus são convertidos em um premio. Então tenho a seguinte tabela:

 

Tabela: bonus

ID | ID_usuario | status

1 | 5 | 0

2 | 5 | 0

 

Eu precisaria de um comando que retornasse apenas os usuários que tem mais de 5 registros com status 0, e se o usuário tiver mais que 5 separar por grupos de 5...

 

Fiz o seguinte código:

SELECT COUNT(id_usuario) AS n_bonus, id_usuario,status FROM bonus WHERE status = '0' AND n_bonus > '5' GROUP BY id_ben LIMIT 5
Porem da erro no n_bonus > '5' e não separa por um conjunto de 5, alguem teria uma solução?

 

Obrigado

 

Edit:

Consegui dar uma melhorada:

SELECT COUNT(id_usuario) AS n_bonus, id_usuario,status FROM bonus WHERE status = '0' GROUP BY id_ben HAVING COUNT(id_usuario) > 5

Agora aparece só os usuários que tem mais que 5, porem se tenho um usuario que tem 10 precisaria exibir duas vezes as 5...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Matias, desculpe, não sei se entendeu bem o que disse acima, li agora e está meio confuso...

Os representantes vão ganhar bônus se atingirem a meta, se ele tiver 5 bônus cadastrados na tabela, o sistema "usa" esses bônus (muda o status para 1) e então cria em outra tabela que ele ganhou 1 premio. Então todo dia vou executar uma pagina e ela deveria procurar todos que tem 5 ou mais bônus e "usar" 5 bônus e adicionar 1 em premio, se tiver 10 ele usaria os 10 e daria 2 em premio e assim por diante...

 

Minha lógica atual (eu sei fazer) seria o seguinte, ao clicar na pagina ele procuraria todos os usuários e dentro do WHILE, para cada usuário verificaria quantos bônus ele tem e transformaria cada 5 bônus em 1 premio. Porem na medida que tenha muitos usuários isso seria inviável, então estou tentando montar essa lógica...

 

A tabela do banco de dados chama: bonus e tem os seguintes campos: ID, ID_usuario e STATUS.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você quer fazer tudo em uma consulta só, vou mover para a área correta que lá o pessoal poderá te ajudar melhor.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Mysql

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.