1
resposta

[Projeto] Resultado com a inclusão de volume, preço médio, participação da receita e do volume

SELECT
    VENDA_SABOR.ANO, VENDA_SABOR.TAMANHO, VENDA_SABOR.RECEITA, VENDA_SABOR.VOLUME, VENDA_SABOR.PRECO_MEDIO,
    ROUND((VENDA_SABOR.RECEITA / VENDA_TOTAL.RECEITA_TOTAL) * 100, 2) AS PARTICIPACAO_RECEITA,
    ROUND((VENDA_SABOR.VOLUME / VENDA_TOTAL.VOLUME_TOTAL) * 100, 2) AS PARTICIPACAO_VOLUME
FROM 
    (SELECT
        TP.TAMANHO,
        YEAR(NF.DATA_VENDA) AS ANO,
        ROUND(SUM(INF.PRECO * INF.QUANTIDADE),2) AS RECEITA,
        ROUND(SUM(INF.QUANTIDADE),0) AS VOLUME,
        ROUND((SUM(INF.PRECO * INF.QUANTIDADE) / SUM(INF.QUANTIDADE)),2) AS PRECO_MEDIO
    FROM 
        tabela_de_produtos AS TP
        INNER JOIN itens_notas_fiscais AS INF ON TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
        INNER JOIN notas_fiscais AS NF ON INF.NUMERO = NF.NUMERO
    GROUP BY
        TP.TAMANHO,
        YEAR(NF.DATA_VENDA)
    ) AS VENDA_SABOR
INNER JOIN
    (SELECT
        YEAR(NF.DATA_VENDA) AS ANO,
        ROUND(SUM(INF.PRECO * INF.QUANTIDADE),2) AS RECEITA_TOTAL,
        ROUND(SUM(INF.QUANTIDADE),0) AS VOLUME_TOTAL
    FROM 
        tabela_de_produtos AS TP
        INNER JOIN itens_notas_fiscais AS INF ON TP.CODIGO_DO_PRODUTO = INF.CODIGO_DO_PRODUTO
        INNER JOIN notas_fiscais AS NF ON INF.NUMERO = NF.NUMERO
    -- WHERE YEAR(NF.DATA_VENDA) = 2016
    GROUP BY YEAR(NF.DATA_VENDA)
    ) AS VENDA_TOTAL
ON VENDA_SABOR.ANO = VENDA_TOTAL.ANO

WHERE
    VENDA_SABOR.ANO IN (2016)
-- HAVING
    -- PART_RECEITA > 20
ORDER BY
    VENDA_SABOR.ANO ASC, VENDA_SABOR.RECEITA DESC
1 resposta

Oi, Rodolfo! Tudo certo por aí?

Parabéns pelo desenvolvimento da atividade e obrigada por compartilhar a sua solução com o fórum! Continue sempre se dedicando que você vai longe.

Caso surja alguma dúvida ao decorrer dos seus estudos, fico à disposição.

Abraços!