SELECT CONSULTA_RELATORIO.TAMANHO,
CONSULTA_RELATORIO.ANO,
CONSULTA_RELATORIO.QUANTIDADE_TOTAL,
ROUND((CONSULTA_RELATORIO.QUANTIDADE_TOTAL/CONSULTA_RELATORIO.QUANTIDADE_GERAL)*100,2) AS PERCENTUAL_PARTICIPACAO
FROM
(SELECT
TP.TAMANHO,EXTRACT(YEAR FROM NF.DATA_VENDA) AS ANO ,SUM(INF.QUANTIDADE) AS QUANTIDADE_TOTAL
,(SELECT TOTAL_ANO.QUANTIDADE_GERAL FROM
(SELECT
EXTRACT(YEAR FROM NF.DATA_VENDA) AS ANO
,SUM(INF.QUANTIDADE) AS QUANTIDADE_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)) TOTAL_ANO
) AS QUANTIDADE_GERAL
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 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;