Estou desenvolvendo um sistema de fluxo de caixa, nele tenho uma tabela onde cadastro as contas com seus respectivos saldos, e tenho duas tabelas de credito e debido onde cadastro as entradas e saídas. Agora estou em uma fase em que estou tentando fazer um SELECT com INNER JOIN entre a tabela de contas e a tabela de credito, afim de obter a soma entre os valores de credito correspondente ao ID da conta em questão + saldo que já tinha na conta. Porém não consigo retornar o valor desejado, o que reparei é que se a conta contém 3 registros com o seu ID na tabela credito ele multiplica o saldo anterior por 3 e depois soma de fato as entradas de crédito. Alguém poderia me ajudar?
Só para deixar claro:
Na tabela contamovimento tenho:
id 1 , nome Santander, saldo 5000.00; id 3, nome Itau, saldo 200.00
Na tabela credito:
id 1, valor 430.00, idcontamovimento(FOREIGN KEY) 1; id 1, valor 520.00, idcontamovimento 1; id 3, valor 120.00, idcontamovimento 3; id 3, valor 120.00, idcontamovimento 3; id 3, valor 120.00, idcontamovimento 3;
A soma com o código que postei abaixo está me retornando:
Itau 960.00 Santander 10950.00
Desde já agradeço!
public function listarSaldo (){
$query = "SELECT ct.nome, sum(ct.saldo + cr.valor) as saldo FROM contamovimento ct INNER JOIN credito cr on ct.id = cr.idcontamovimento GROUP BY nome";
$conexao = Conexao::pegarConexao();
$resultado = $conexao->query($query);
$lista = $resultado->fetchAll();
return $lista;
}