Bom dia a todos!
Vou compartilhar aqui a query que estruturei para a resolução do exercício e gostaria de entender se ela geraria algum tipo de sobrecarga no banco ou se poderia utilizá-la normalmente.
SELECT CONCAT(
'O Cliente ',
SQ3.NOME,
' faturou R$ ',
FORMAT(SQ3.TOTAL_CLIENTE,2),
' no ano de 2016'
)
AS FATURAMENTO
FROM
(SELECT SQ2.NOME,
YEAR(SQ1.DATA_VENDA) AS ANO,
SUM(ROUND(NF_TOTAL)) AS TOTAL_CLIENTE FROM
(SELECT NF.CPF,
NF.DATA_VENDA,
INF.NUMERO,
SUM((INF.QUANTIDADE * INF.PRECO)) AS NF_TOTAL
FROM notas_fiscais NF
INNER JOIN itens_notas_fiscais INF
ON NF.NUMERO = INF.NUMERO
GROUP BY YEAR(NF.DATA_VENDA), INF.NUMERO
HAVING YEAR(NF.DATA_VENDA) = 2016
ORDER BY NF.CPF) SQ1
INNER JOIN tabela_de_clientes SQ2
ON SQ1.CPF = SQ2.CPF
GROUP BY SQ1.CPF, YEAR(SQ1.DATA_VENDA)) SQ3;