Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

codigo não funciona

o código não funciona
retorna tudo nulo

SELECT c.nome, x.id
FROM clientes c
LEFT JOIN
(
SELECT p.id, p.idcliente
FROM pedidos p
WHERE strftime('%m', p.datahorapedido) = '10')x
ON c.id = x.idcliente
WHERE x.idcliente IS NULL

1 resposta

Ei! Tudo bem, Edvaldo!

Está correto tanto retornar nulo quanto o seu código. A consulta usa um LEFT JOIN para combinar a tabela clientes (esquerda) com uma subconsulta que filtra apenas os pedidos do mês '10' (outubro). O WHERE x.idcliente IS NULL filtra apenas as linhas onde não houve match (ou seja, clientes que não têm pedidos em outubro). Para esses clientes, as colunas de x serão NULL por definição.

Resultado esperado é uma lista de nomes de clientes (de c.nome) que não fizeram pedidos em outubro, com x.id como NULL em todas as linhas (pois não há pedido associado). Você pode rever essa explicação a partir do minuto 6.0 da aula.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais, Edvaldo!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!