Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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...
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.
Refaço a pergunta.
Qual banco de dados? Mysql? Sql Server? Firebird? Oracle? Postgre?
Carlos Eduardo
Ops, falto isso... é MySQL :unsure:
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
Qual banco de dados?
Carlos Eduardo