1
resposta

Exemplo de LEFT JOIN com ano 2015 (JOIN com valores nulos)

Para comecar gostaria pedir desculpas pela falta de acentuacao no texto, o meu teclado nao possui a maior parte dos acentos. Nao possuo uma dúvida, mas uma sugestao a respeito do resultado do seguinte codigo:

SELECT DISTINCT A.cpf, A.nome, B.cpf
FROM tabela_de_clientes A LEFT JOIN notas_fiscais B
    ON  A.cpf = B.cpf
WHERE B.cpf IS NULL AND YEAR(B.data_venda) = 2015;

O resultado saiu nulo pois nao há valores de data registrados no cliente que nao fez compras, ou seja, existe somente um valor nulo com o qual nao se pode usar a funcao YEAR() a qual é relativa a tipos de dado relacionados a data. Portanto uma correcao ao codigo que possa incluir o cliente que nao realizou compras na análise anual sem mudar a estrutura da base de dados é utilizar o código a seguir:

SELECT DISTINCT A.cpf, A.nome, B.cpf
FROM tabela_de_clientes A LEFT JOIN notas_fiscais B ON  A.cpf = B.cpf
WHERE B.cpf IS NULL AND YEAR(B.data_venda) = 2015 OR B.data_venda IS NULL;

No final, percebe-se que foi usado B.data_venda IS NULL e nao YEAR(B.data_venda) IS NULL, já que, como mencionado anteriomente, se o valor de data_venda for um tipo indefinido ele nao funciona com a funcao YEAR() .

Obrigado pelo curso, aprendi muito!

1 resposta

Olá Jorge, tudo bem?

Achei muito legal você ter compartilhado aqui com a gente essa dica Jorge, detalhando examente como funciona na query, isso poderá ajudar vários outros alunos.

É bem legal também, saber que você está gostando dos nossos cursos :)

Continue assim e bons estudos!