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

DESOLUÇÃO: Vendas percentuais por tamanho

1. RESOLUÇÃO DO EXERCÍCO PROPOSTO:

SELECT VENDA_TAMANHO.TAMANHO, VENDA_TAMANHO.ANO,  VENDA_TAMANHO.QUANTIDADE,
ROUND((VENDA_TAMANHO.QUANTIDADE/VENDA_TOTAL.QUANTIDADE) *100, 2) AS PARTICIPACAO
FROM (
    SELECT TP.TAMANHO, 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 INF.NUMERO = NF.NUMERO
    WHERE YEAR(NF.DATA_VENDA) = 2016
    GROUP BY TP.TAMANHO, YEAR(NF.DATA_VENDA)) AS VENDA_TAMANHO
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 INF.NUMERO = NF.NUMERO
    WHERE YEAR(NF.DATA_VENDA) = 2016
    GROUP BY YEAR(NF.DATA_VENDA)) AS VENDA_TOTAL	
ON VENDA_TAMANHO.ANO = VENDA_TOTAL.ANO
ORDER BY VENDA_TAMANHO.QUANTIDADE DESC;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2. Para teste, acrescentei o indicador sabor. Desta forma o "ranking de vendas de 2016" levará em consideração a maior quantidade vendida por sabor e por tamanho, além de indicar o percentual de participação de cada.

Ficou assim:

SELECT VENDA_TAMANHO.TAMANHO, VENDA_TAMANHO.SABOR, VENDA_TAMANHO.ANO,  VENDA_TAMANHO.QUANTIDADE,
ROUND((VENDA_TAMANHO.QUANTIDADE/VENDA_TOTAL.QUANTIDADE) *100, 2) AS PARTICIPACAO
FROM (
    SELECT TP.SABOR, TP.TAMANHO, 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 INF.NUMERO = NF.NUMERO
    WHERE YEAR(NF.DATA_VENDA) = 2016
    GROUP BY TP.SABOR, TP.TAMANHO, YEAR(NF.DATA_VENDA)) AS VENDA_TAMANHO
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 INF.NUMERO = NF.NUMERO
    WHERE YEAR(NF.DATA_VENDA) = 2016
    GROUP BY YEAR(NF.DATA_VENDA)) AS VENDA_TOTAL
ON VENDA_TAMANHO.ANO = VENDA_TOTAL.ANO
ORDER BY VENDA_TAMANHO.QUANTIDADE DESC;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Kael!

Boa demais, mandou muito bem, gostei da sua organização.

Obrigado por compartilhar conosco os seus avanços e resultados, tenho certeza que vai inspirar outros alunos!

Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!