SUM + DISTINCT

Enviada por francisco 
francisco
SUM + DISTINCT
11 de March de 2015 às 01:27PM
Boa tarde pessoal, estou com um probleminha, tenho uma tabela de afiliados com niveis eu já consegui contar esses afiliados dor niveis, porem agora eu preciso comar os valores de 1 campo desse cada afiliado, ao tentar somar direto ele ta duplicando a soma de alguns afiliados por ta repetindo em outros niveis, preciso somar os campos com distinção de email somar apenas os dados do campo que não sao do mesmo email.

Segue abaixo como fiz o select count disctint dos emails com niveis.
$sql = 'SELECT count(distinct t1.email) AS lev1,
count(distinct t2.email) as lev2,
count(distinct t3.email) as lev3,
count(distinct t4.email) as lev4,
count(distinct t5.email) as lev5,
count(distinct t6.email) as lev6
FROM oc_affiliate AS t1
LEFT JOIN oc_affiliate AS t2 ON t2.affiliate_referral = t1.affiliate_id
LEFT JOIN oc_affiliate AS t3 ON t3.affiliate_referral = t2.affiliate_id
LEFT JOIN oc_affiliate AS t4 ON t4.affiliate_referral = t3.affiliate_id
LEFT JOIN oc_affiliate AS t5 ON t5.affiliate_referral = t4.affiliate_id
LEFT JOIN oc_affiliate AS t6 ON t6.affiliate_referral = t5.affiliate_id
WHERE t1.affiliate_id = 8';


AGORA eu preciso pegar o campo 'comjan' de cada afiliado e somar tentei fazer dessa forma abaixo:
SELECT SUM(t1.comjan) AS lev1,
SUM(t2.comjan) as lev2,
SUM(t3.comjan) as lev3,
SUM(t4.comjan) as lev4,
SUM(t5.comjan) as lev5,
SUM(t6.comjan) as lev6
FROM oc_affiliate AS t1
LEFT JOIN oc_affiliate AS t2 ON t2.affiliate_referral = t1.affiliate_id
LEFT JOIN oc_affiliate AS t3 ON t3.affiliate_referral = t2.affiliate_id
LEFT JOIN oc_affiliate AS t4 ON t4.affiliate_referral = t3.affiliate_id
LEFT JOIN oc_affiliate AS t5 ON t5.affiliate_referral = t4.affiliate_id
LEFT JOIN oc_affiliate AS t6 ON t6.affiliate_referral = t5.affiliate_id
WHERE t1.affiliate_id = 8

porem ele soma errado por ta repetindo cara email em um nivel diferente.

Alguém ai poderia me ajudar a fazer essa soma sem repetição por nivel?

Abraço
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.