Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Utilização do WHEN

Olá, eu não compreendi muito bem em qual situações não podemos utilizar o when. Achei que quando tivesse funções de agregações não era possível utilizar, mas nessa aula ele utiliza mesmo com o SUM(INF.QUANTIDADE)

2 respostas

Oi, Maitê! Tudo bom?

Acredito que a sua pergunta seja, na verdade, em relação à cláusula WHERE, correto? Já que não utilizamos o WHEN nas consultas desta aula. O WHERE tem como objetivo filtrar os resultados com base em uma condição específica.

No exemplo da aula, o WHERE é usado para filtrar os resultados pela condição YEAR(NF.DATA_VENDA) = 2015, ou seja, apenas serão considerados os registros de vendas do ano de 2015. Isso é feito antes de agrupar as informações por sabor e data da venda.

Desse modo, com relação às funções de agregação, é possível usar o WHERE desde que ele esteja antes da cláusula GROUP BY. Caso esteja depois, o filtro é realizando a partir do HAVING, visto que:

  • O WHERE é aplicado diretamente nas linhas de dados e permite selecionar apenas os registros que cumprem certa condição;
  • O HAVING é aplicado aos resultados das operações de agregação (como SUM e COUNT), permitindo filtrar os conjuntos de dados já agregados.

Não há uma regra fixa que determina quando devemos (ou não) trabalhar com o WHERE, Maitê, isso dependerá do contexto da nossa consulta. :)

Espero que tenha ficado mais claro! Conforme ampliamos o nosso contato com esses recursos do SQL, menos abstratos tendem a ser suas aplicações.

Se aparecem novas dúvidas, estarei por aqui.

Um abraço, Maitê!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!
solução!

Isso, era do WHERE que eu estava me referindo. Obrigada pela explicação