1
resposta

POSSÍVEL SOLUÇÃO: CÓDIGO MAIS CURTO

Utilizei o OVER() para criar uma coluna com o SUM do faturamento já agrupado, criando o total e calculei direto com o faturamento da SUBQUERY já agrupado por ano e sabor.

SELECT
DADOS.SABOR,
DADOS.ANO,
FATURAMENTO,
CONVERT(VARCHAR, CONVERT(DECIMAL(12,2), (DADOS.FATURAMENTO / SUM(FATURAMENTO) OVER() * 100))) + '%' AS PERCENTUAL
FROM (
        SELECT
        SABOR,
        YEAR(DATA) AS ANO,
        CONVERT(DECIMAL(12,2),SUM(QUANTIDADE * PREÇO)) AS FATURAMENTO
        FROM [TABELA DE PRODUTOS] TBP
        INNER JOIN [ITENS NOTAS FISCAIS] INF ON TBP.[CODIGO DO PRODUTO] = INF.[CODIGO DO PRODUTO]
        INNER JOIN [NOTAS FISCAIS] NF ON INF.NUMERO = NF.NUMERO
        WHERE YEAR(DATA) = 2016
        GROUP BY SABOR, YEAR(DATA)
      ) DADOS
1 resposta

Oi, Francisco! Tudo certo por aí?

Peço desculpas pela demora em te responder.

Mandou muito bem na construção da consulta! Durante o nosso processo de aprendizagem, utilizar diferentes conhecimentos é um exercício muito importante para a consolidação e desenvolvimento de saberes.

Seu SELECT está organizado e bem estruturado, continue sempre com essa dedicação que você vai longe, Francisco!

Em caso de dúvidas, fico à disposição.

Abraços!