No vídeo "Exemplos de LEFT e RIGHT JOIN" da aula 04, aos 8min35 o professor afirmou que "Em 2015 todo mundo que está no cadastro de clientes comprou!".
Salvo engano, parece-me que esta afirmação está errada, pois quando a query estava sem a condição "AND YEAR (B.DATA_VENDA) = 2015" o resultado mostrava 1 registro do cliente "Fábio Carvalho", ou seja, quando a pesquisa considerou TODOS os anos (não apenas em 2015), o resultado mostrou que o cliente "Fábio Carvalho" não fez qualquer compra em qualquer data. Depois de inserida a condição para restringir a consulta apenas ao ano de 2015, o mesmo resultado deveria ser mostrado, pois o cliente "Fábio Carvalho" nunca comprou (nem em 2015).
Na verdade essa consulta, da forma como foi feita pelo professor, sempre retornará 0 registros porque na tabela "notas_fiscais" não há registros cujo campo "CPF" esteja "null" E o respectivo campo "DATA_VENDA" esteja preenchido. Nesta tabela "notas_fiscais" todos os registros que têm alguma data preenchida no campo "DATA_VENDA", certamente terão o campo CPF preenchido também (sempre diferente de null) .
Concluo que esta consulta não pode ser utilizada para afirmar que "Todo mundo comprou em 2015" (o cliente "Fábio Carvalho", por exemplo, não comprou). Para saber "Quem não comprou em 2015?" há diferentes formas de fazer... eu rodei a seguinte consulta e deu certo:
SELECT DISTINCT A.CPF, A.NOME FROM tabela_de_clientes A
LEFT JOIN notas_fiscais B ON A.CPF = B.CPF
WHERE A.CPF NOT IN (SELECT DISTINCT C.CPF FROM notas_fiscais C WHERE YEAR(C.DATA_VENDA) = 2015);
Está correta minha análise? Se sim, há alguma forma de corrigir a informação na vídeo-aula, para evitar confusão nos alunos? Grato.