Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

DÚVIDA SOBRE SOLUÇÃO ALTERNATIVA DO EXERCÍCIO

Na atividade onde é solicitada uma pesquisa que retorne a quantidade de impostos pagos em 2016 a solução dada pelo professor no curso é o código:

SELECT YEAR(DATA_VENDA), FLOOR(SUM(IMPOSTO * (QUANTIDADE * PRECO))) FROM notas_fiscais NF INNER JOIN itens_notas_fiscais INF ON NF.NUMERO = INF.NUMERO WHERE YEAR(DATA_VENDA) = 2016 GROUP BY YEAR(DATA_VENDA

o que retornou o valor total de: 4656937

Eu, no entanto, havia escrito um código diferente, mas pensava que o mesmo valor deveria ser retornado.

SELECT A.NUMERO, A.QUANTIDADE, A.PRECO, B.IMPOSTO, SUM(FLOOR(A.QUANTIDADEA.PRECOB.IMPOSTO)) AS IMPOSTO_PAGO, B.DATA_VENDA FROM itens_notas_fiscais A INNER JOIN notas_fiscais B ON A.NUMERO = B.NUMERO WHERE YEAR(DATA_VENDA) = 2016;

quando agrupei pelo SUM() o valor retornado foi : 4623436

Não estou conseguindo entender o que há com meu código para retornar um valor diferente.

2 respostas
solução!

Por acaso é a ordem entre as funções? o FLOOR inserido dentro do SUM arredonda todas as somas para baixo, resultando em um valor final menor?

Realmente kkk desculpem abrir um tópico para isso, testei alterar a ordem das funções e o resultado foi o mesmo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software