Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro

Queria saber onde estou errando porque não aparece a tabela com os resultados certos.

SELECT A.NUMERO, A.IMPOSTO, ROUND((QUANTIDADE * PRECO) - A.IMPOSTO , 2) AS FATURAMENTO
 FROM NOTAS_FISCAIS A
INNER JOIN ITENS_NOTAS_FISCAIS B ON A.NUMERO = B.NUMERO
WHERE YEAR(DATA_VENDA) = 2016 
GROUP BY YEAR(DATA_VENDA)
1 resposta
solução!

Olá Vinicius, tudo bem?

Não é necessario exibir na consulta os campos número e imposto, é solicitado apenas o calculo do valor do imposto pago no ano de 2016, então você pode retornar apenas o ano e o valor do imposto.

Ao invés de realizar a subtração do campo imposto, você precisa realizar a mutiplicação, pois o valor total do imposto é cauculado realizando a mutiplicação de QUANTIDADE * PRECO e mutiplicando esse valor pelo imposto IMPOSTO * (QUANTIDADE * PRECO) e para obter o resultado final você realiza a soma SUM(IMPOSTO * (QUANTIDADE * PRECO)).

Na atividade é solicitado que seja arredondando para o menor inteiro, então ao invés de utilizar a função ROUND, você pode utilizar a função FLOOR, que retorna o maior valor inteiro, o menor ou igual a um número.

A query após as alterações fica dessa forma:

SELECT YEAR(DATA_VENDA), FLOOR(SUM(NF.IMPOSTO * (INF.QUANTIDADE * INF.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)

Espero ter ajudado, qualquer dúvida é só falar e bons estudos!