Nem todo resultado inesperado em SQL é sinal de erro. Às vezes, o problema está na forma como a query foi construída ou em uma lógica que o analista não percebeu.

Neste artigo, você verá um exemplo real onde a consulta roda normalmente, mas o resultado causa estranhamento. A missão é identificar:

“O que está acontecendo por trás desse resultado?”


1. As Tabelas Envolvidas

🗂️ Tabela: cliente

ID_CLIENTENOME
1Ana Souza
2Bruno Lima
3Carla Torres

🗂️ Tabela: pedido

ID_PEDIDOID_CLIENTESTATUSVALOR_TOTAL
1011confirmado200.00
1022cancelado300.00
1032confirmado100.00

2. A Query Que Gera o Resultado Surpreendente

SELECT C.NOME, SUM(P.VALOR_TOTAL) AS TOTAL
FROM cliente C
JOIN pedido P ON C.ID_CLIENTE = P.ID_CLIENTE
WHERE P.STATUS = 'confirmado'
GROUP BY C.NOME;

3. O Resultado Obtido

NOMETOTAL
Ana Souza200.00
Bruno Lima100.00

📌 Tudo parece certo… mas espera aí — por que só tem dois clientes? Cadê a Carla?


4. O Que Está Acontecendo?

Carla (ID 3) não aparece na tabela de pedidos. Como a consulta está usando JOIN (e não LEFT JOIN), ela é excluída da análise completamente.

Ou seja:

  • A query só considera clientes com pedidos confirmados
  • Quem nunca fez pedido ou não tem pedidos com o status esperado fica fora

Como Incluir Todos os Clientes, Mesmo os Sem Pedido Confirmado?

Use LEFT JOIN e trate os nulos com COALESCE:

SELECT C.NOME, COALESCE(SUM(P.VALOR_TOTAL), 0) AS TOTAL
FROM cliente C
LEFT JOIN pedido P ON C.ID_CLIENTE = P.ID_CLIENTE AND P.STATUS = 'confirmado'
GROUP BY C.NOME;

Resultado Corrigido

NOMETOTAL
Ana Souza200.00
Bruno Lima100.00
Carla Torres0.00

Lição Aprendida

  • O filtro WHERE P.STATUS = 'confirmado' aplicado após o JOIN exclui todos os clientes sem pedidos confirmados.
  • Quando quiser manter todos os clientes no resultado, filtre diretamente no JOIN (ON) ou use LEFT JOIN + IS NULL.

Conclusão

O resultado de uma query nem sempre está errado mas pode estar incompleto. Saber quando usar LEFT JOIN, como tratar nulos e onde aplicar filtros é essencial para entregar análises confiáveis.

  • Preste atenção em quem está sendo excluído da análise
  • Releia os filtros com cuidado
  • Use COALESCE para lidar com ausências

📢 Você já viu um resultado que parecia certo, mas estava incompleto? Compartilha sua história nos comentários! 📚 E se quiser aprender SQL com foco em lógica, raciocínio e casos reais, conheça o curso SQL Simplificado — feito pra quem quer ir além do básico.

Nos vemos no próximo artigo do Blog do SQL! 🚀

Tags: | | |

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solicitar exportação de dados

Use este formulário para solicitar uma cópia de seus dados neste site.

Solicitar a remoção de dados

Use este formulário para solicitar a remoção de seus dados neste site.

Solicitar retificação de dados

Use este formulário para solicitar a retificação de seus dados neste site. Aqui você pode corrigir ou atualizar seus dados, por exemplo.

Solicitar cancelamento de inscrição

Use este formulário para solicitar a cancelamento da inscrição do seu e-mail em nossas listas de e-mail.