1
resposta

Resolução - Desafio Tamanho

SELECT 
    CONSULTA_RELATORIO.TAMANHO, 
    CONSULTA_RELATORIO.ANO, 
    CONSULTA_RELATORIO.QUANTIDADE_TOTAL, 
    CONSULTA_RELATORIO.QUANTIDADE,
    ROUND((CONSULTA_RELATORIO.QUANTIDADE_TOTAL / CONSULTA_RELATORIO.QUANTIDADE) * 100,2) AS PERCENTUAL_PARTICIPACAO
FROM (
    SELECT 
        TP.TAMANHO,
        SUM(INF.QUANTIDADE) AS QUANTIDADE_TOTAL,
        EXTRACT(YEAR FROM NF.DATA_VENDA) AS ANO,
        (
            SELECT QNTD_GERAL 
            FROM (
                SELECT 
                    EXTRACT(YEAR FROM NF.DATA_VENDA) AS ANO,
                    SUM(INF.QUANTIDADE) AS QNTD_GERAL
                FROM 
                    NOTAS_FISCAIS NF
                INNER JOIN
                    ITENS_NOTAS_FISCAIS INF ON NF.NUMERO = INF.NUMERO
                WHERE 
                    EXTRACT(YEAR FROM NF.DATA_VENDA) = 2016
                GROUP BY 
                    EXTRACT(YEAR FROM NF.DATA_VENDA)
            ) QUANTIDADE_TOTAL
            WHERE QUANTIDADE_TOTAL.ANO = EXTRACT(YEAR FROM NF.DATA_VENDA)
        ) 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 
        EXTRACT(YEAR FROM NF.DATA_VENDA) = 2016
    GROUP BY 
        TP.TAMANHO, EXTRACT(YEAR FROM NF.DATA_VENDA)
    ORDER BY 
        SUM(INF.QUANTIDADE) DESC
) CONSULTA_RELATORIO;

Gostaria de dicas para tornar os códigos mais legíveis.

1 resposta

Oii, Gabriel! Tudo bem?

Parabéns por colocar em prática as atividades da aula, isso é muito importante para o seu desenvolvimento.

O seu código está bem estruturado e legível, está no caminho certo! Como sugestão você pode usar alias mais descritivos para as tabelas e consultas. Pode adicionar quebra de linhas e indentação para melhorar a leitura. E adicionar comentários para especificar o que cada parte está executando.

Espero ter ajudado. Continue se dedicando aos estudos e conte com a Alura durante o processo.

Abraço!