Olá, Matheus, tudo bem?
Neste caso, não seria necessário a utilização de um JOIN
para obter o resultado desta atividade, Já que foi solicitado os clientes que fizeram mais de 2000 compras em 2016. Então, para obter esse resultado, você precisaria apenas realizar uma contagem das notas fiscais e agrupar pelo CPF, dessa forma:
SELECT CPF, COUNT(*) FROM notas_fiscais
WHERE YEAR(DATA_VENDA) = 2016
GROUP BY CPF
HAVING COUNT(*) > 2000
Mas caso, você queira retornar também o nome do cliente, você precisaria realizar um JOIN
com a tabela de clientes, dessa forma:
SELECT NF.CPF, TC.NOME,COUNT(*)
FROM tabela_de_clientes tc
JOIN notas_fiscais nf
ON tc.CPF = nf.CPF
WHERE YEAR(DATA_VENDA) = 2016
GROUP BY CPF
HAVING COUNT(*) > 2000
Continue assim e bons estudos!