Olá pessoal, estou realizando uma operação no mysql que está duplicando os resultados finais.
Possuo 2 tabelas: * tb_rotas_teste com estrutura simples de:
1- id
2- id_carro
3- distancia
Com preenchimento dos seguintes dados:
id id_carro distancia
1 31 0.4
2 20 0.5
3 25 2.5
4 25 4.5
5 21 10.0
6 20 20.0
*tb_abastecimento_teste com estrutura de:
1-id
2-id_carro
3-valor
Com o preenchimento dos seguintes dados:
id id_carro valor
1 25 45.00
2 20 30.00
3 28 100.00
4 20 25.00
5 31 22.00
6 20 10.00
A operação que quero fazer é juntar o total de distancia percorrida na tabela de rotas, comparando com total do valor em abastecimento e agrupar isso pelo id_carro.
Para isso, usei a query
SELECT r.id_carro,ROUND(SUM(r.distancia),2) as distancia, ROUND(SUM(a.valor),2) as valor from tb_rotas_teste r left join tb_abastecimento_teste a on a.id_carro = r.id_carro group by r.id_carro
Mas, como resultado eu tive o resultado:
id_carro valor distancia
20 130.00 61.50
21 NULL 10.00
25 90.00 7.0
31 22.0 0.40
Analisando apenas pelo id_carro = 20, o resultado final para o valor ficou em 130.00 mas era para ter ficado em 65.00, ou seja, duplicou este valor. A distancia ficou em 61.50, mas era para ter ficado em 20.5, ou seja, triplicou.
OBS: usei left join, pois terão alguns carros que já terão distância preenchido e não terão ainda o valor do abastecimento.
Porque está ocorrendo esses valores divergentes no resultado ? Obrigado pela atenção.