1
resposta

RESPOSTA DA IMAGEM INICIAL DO VIDEO

No video apresentou um resultado diferente, porém me basei na imagem inicial, está correto?

SELECT VALOR_SABOR.SABOR, VALOR_TOTAL.ANO, VALOR_SABOR.QUANTIDADE, ROUND((VALOR_SABOR.QUANTIDADE/VALOR_TOTAL.TOTAL) * 100,2) AS PORCENTAGEM
FROM
(select tp.sabor,year(nf.data_venda) as ANO,sum(inf.quantidade * inf.PRECO) as QUANTIDADE
 from tabela_de_produtos tp inner join itens_notas_fiscais inf 
 on tp.CODIGO_DO_PRODUTO= inf.CODIGO_DO_PRODUTO
 inner join notas_fiscais nf on inf.NUMERO= nf.NUMERO
 where year(nf.data_venda) = 2016
 group by tp.sabor,year(nf.data_venda)) AS VALOR_SABOR
 INNER JOIN
  (select year(nf.data_venda) as ANO,sum(inf.quantidade * inf.PRECO) as TOTAL
 from tabela_de_produtos tp inner join itens_notas_fiscais inf 
 on tp.CODIGO_DO_PRODUTO= inf.CODIGO_DO_PRODUTO
 inner join notas_fiscais nf on inf.NUMERO= nf.NUMERO
 where year(nf.data_venda) = 2016
 group by year(nf.data_venda)) AS VALOR_TOTAL
 ON VALOR_SABOR.ANO = VALOR_TOTAL.ANO
 ORDER BY QUANTIDADE DESC;
1 resposta

Olá, Renan, tudo bem?

Peço desculpas pela demora no retorno.

Baseado na imagem apresentada no início do vídeo, a sua query está sim correta, porém, o valor retornado é o faturamento obtido por sabor no ano de 2016 ao invés da quantidade vendida por sabor no ano de 2016.

Para obter apenas a quantidade vendida por sabor no ano de 2016, não é necessário realizar a multiplicação do campo quantidade pelo preço, apenas realizar a soma:

SUM(INF.QUANTIDADE) AS QUANTIDADE

A query completa do instrutor:

SELECT VENDA_SABOR.SABOR, VENDA_SABOR.ANO, VENDA_SABOR.QUANTIDADE,
ROUND((VENDA_SABOR.QUANTIDADE/VENDA_TOTAL.QUANTIDADE) * 100, 2) AS PARTICIPACAO FROM
(SELECT TP.SABOR, YEAR(NF.DATA_VENDA) AS ANO, SUM(INF.QUANTIDADE) AS QUANTIDADE FROM
TABELA_DE_PRODUTOS TP
INNER JOIN ITENS_NOTAS_FISCAIS INF ON TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
INNER JOIN NOTAS_FISCAIS NF ON NF.NUMERO = INF.NUMERO
WHERE YEAR(NF.DATA_VENDA) = 2016
GROUP BY TP.SABOR, YEAR(NF.DATA_VENDA)) AS VENDA_SABOR
INNER JOIN
(SELECT YEAR(NF.DATA_VENDA) AS ANO, SUM(INF.QUANTIDADE) AS QUANTIDADE FROM
TABELA_DE_PRODUTOS TP
INNER JOIN ITENS_NOTAS_FISCAIS INF ON TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
INNER JOIN NOTAS_FISCAIS NF ON NF.NUMERO = INF.NUMERO
WHERE YEAR(NF.DATA_VENDA) = 2016
GROUP BY YEAR(NF.DATA_VENDA)) AS VENDA_TOTAL
ON VENDA_SABOR.ANO = VENDA_TOTAL.ANO
ORDER BY VENDA_SABOR.QUANTIDADE DESC

Foi muito legal você ter compartilhado a sua resposta da atividade aqui com a gente, você está indo muito bem :).

Continue assim, qualquer dúvida é só falar e bons estudos!