Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, tenho duas tabelas:
1) tb_assinantes (contém os dados do assinante)
tratamento | nome | nome2 | cxpostal | etc...
2) tb_assinantes_pagamentos (informa que o assinante x pagou da edicaoX ate edicaoY)
assinante | edicao1 | edicao 2 | valor | data
E preciso fazer um filtro por faixa de edicao pagas, por exemplo, vamos supor que no mes de janeiro ele pagou da edicao 1 até 10 (gerou uma linha na tabela) depois em fevereiro ele pagou da edicao 11 ate 20 (gerou outra linha) e por ai vai...
Então quero buscar o assinante que pagou por exemplo da edicao 5 ate 15, ou seja, nao posso encontrar duas respostas, mas sim somente uma e então preparei este SQL
SELECT tb1.tratamento AS tratamento, tb1.nome AS nome, tb1.nome2 AS nome2, tb1.cxpostal AS cxpostal, tb1.endereco AS endereco, tb1.numero AS numero, tb1.complemento AS complemento, tb1.bairro AS bairro, tb1.cidade AS cidade, tb1.estado AS estado, tb1.email AS email, tb1.telefone AS telefone, tb1.cep AS cep, tb1.comite AS comite, MIN(tb2.edicao1) AS edicao1, MAX(tb2.edicao2) AS edicao2
FROM tb_assinantes tb1 INNER JOIN tb_assinantes_pagamentos tb2 ON tb1.id = tb2.assinante
WHERE tb1.comite = '".$_POST['comite']."' AND MIN(tb2.edicao1) <= '".$_POST['edicao1']."' AND MAX(tb2.edicao2) >= '".$_POST['edicao2']."'
GROUP BY tratamento,nome,nome2,cxpostal,endereco,numero,complemento,bairro,cidade,estado,email,telefone,cep,comite
ORDER BY tb1.nome ASC
Mas além de não funcionar, ele da um erro do tipo: Descrição: Uso inválido de função de agrupamento (GROUP)
Alguém pode me ajudar a solucionar este problema?
Obrigado.
Paulo César
Carregando comentários...