Primeiro entendi pelo diagrama do banco onde estão as informação. depois fui montando um InnerJoin por vez.
SELECT CONCAT( 'O cliente ', NOTAS.NOME, 'comprou R$', STR(SUM(NOTAS.TOTAL),10,2), ' no ano de ', YEAR(NOTAS.DATA_VENDA) ) FROM ( SELECT TOTAL, CLIENTES.NOME, NOTAS.DATA_VENDA FROM (SELECT NF.NUMERO,NF.CPF,NF.DATA_VENDA ,(INF.QUANTIDADE*INF.PRECO) AS TOTAL FROM NOTAS_FISCAIS NF INNER JOIN ITENS_NOTAS_FISCAIS INF ON NF.NUMERO = INF.NUMERO) NOTAS INNER JOIN TABELA_DE_CLIENTES CLIENTES ON NOTAS.CPF = CLIENTES.CPF) NOTAS WHERE YEAR(NOTAS.DATA_VENDA) = '2016' GROUP BY YEAR(NOTAS.DATA_VENDA), NOTAS.NOME