2
respostas

Dúvida quanto no INNER JOIN

Eu estava testando algumas coisas após atividade da aula sobre os comandos JOIN e me deparei com um resultado que não consegui compreender. O código é o abaixo:

select A.numero, year(data_venda), codigo_do_produto, quantidade, preco, sum(quantidade * preco) as faturamento
from notas_fiscais A inner join itens_notas_fiscais B
on A.numero = B.numero group by year(data_venda), codigo_do_produto
order by A.numero;

No caso, acho que a dúvida estaria mais relacionada à como o MySQL interpretou este código e calculou o faturamento, pois acho que o valor calculado não está correto.

2 respostas

Olá Emmanuel, boa tarde !

Talvez o group by tenha um peso no seu estranhamento, pois note que no seu "SELECT" é selecionado Colunas "A.numero", "year(data_venda)" , "codigo_do_produto", "quantidade", "preco" .

Porem no seu group by aparecem apenas "year(data_venda)" , "codigo_do_produto"

Sugiro sempre no group by deixar todas as colunas que não estiverem fazendo parte de alguma conta, como SUM , COUNT , ou outro processo que ja é agregativo por natureza.

Se isso não ajudar pode mandar um exemplo especifico que ache que não esta batendo para ver se não é outra coisa....

Espero ter ajudado...

Ok, Pablo! Vou verificar e volto aqui para atualizar. Obrigado!