Ir para conteúdo

Arquivado

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

rfamelli

In ner JOin

Recommended Posts

Oi Pessoal, estou tendo problemas com o Inner jOIN. Não sei mais o que fazer. Acho que nao entendi muito bem a logica dele. Alguem me help? obrigada desde já!

 

Preciso tirar um extrato de um determinado cliente, com tudo o que ele comprou por data, e tudo o que ele resgatou de pontos ganhos..

 

Ex.:Cliente número 2945, comprou no dia 10/04/2010 R$ 75,00 e tem direitio há resgatar R$7,5.

Cliente número 2945, comprou no dia 15/04/2010 R$ 105,00 e tem direitio há resgatar R$10,50.

Ciente número 2945, resgatou no dia 20/04/2010 R$ 18,00.

 

Histórico do cliente 2945

 

Data Crédito Debito

10/04/2010 | R$ 75,00 | 0

15/04/2010 | R$105,00 | 0

20/04/2010 | 0 | - R$18,00

 

MEU CÓDIGO

 

Tabela Cadastro

 

id_user auto_increment

nome

email

 

 

Tabelao Crédito

 

id_cred auto_increment

id_user int(11)

data date

valor varchar(10)

 

 

Tabela Débito

 

id_deb auto_increment

id_user int(11)

datadeb date

valordeb varchar(10)

 

 

$sql = "select credito.*, debito.* FROM credito INNER JOIN debito ON credito.id_user = debito.id_user WHERE credito.id_user = '$id_user'";

 

PROBLEMA:

 

Tá multiplicando dados.

 

data | credito | Debito

2009-02-05 | 5 | 7

2010-02-02 | 75,00 | 7

2009-02-05 | 22,50 | 7

2010-02-06 | 33,50 | 7

2010-02-20 | 50,00 | 7

2009-02-05 | 5 | 3

2010-02-02 | 75,00 | 3

2009-02-05 | 22,50 | 3

2010-02-06 | 33,50 | 3

2010-02-20 | 50,00 | 3

2009-02-05 | 5 | 5

2010-02-02 | 75,00 | 5

2009-02-05 | 22,50 | 5

2010-02-06 | 33,50 | 5

2010-02-20 | 50,00 | 5

2009-02-05 | 5 | 1

2010-02-02 | 75,00 | 1

2009-02-05 | 22,50 | 1

2010-02-06 | 33,50 | 1

2010-02-20 | 50,00 | 1

2009-02-05 | 5 | 1

2010-02-02 | 75,00 | 1

2009-02-05 | 22,50 | 1

2010-02-06 | 33,50 | 1

2010-02-20 | 50,00 | 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
$sql = "
   SELECT SUM(COALESCE(c.valor,0), - COALESCE(d.valor,0)) 
   FROM credito c 
   LEFT JOIN debito d ON c.id_user = d.id_user  
   WHERE c.id_user = '$id_user' 
   GROUP BY c.id_user, d.id_user"; 

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.