Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Depois que entreguei vi que fiz uma confusão que no lugar do das férias eu deveria ter seguido a lógica booleana e colocado um para o sim e zero para não. Neste caso o código seria:
SELECT * FROM TABELA_VENDEDORES WHERE (DE_FERIAS = 1) AND (YEAR(DATA_ADMISSAO) < 2016)
Oi, Anne! Tudo bem?
Desde já, peço desculpas pela demora em retornar.
Parabéns pela resolução da atividade e por ter identificado o erro do primeiro comando! Existem diferentes maneiras de construirmos o nosso conhecimento, e uma delas é corrigindo algo que fizemos. Isso estimula aspectos como raciocínio e olhar crítico, continue assim que você vai longe!
Vamos entender um pouco mais sobre a diferença entre os dois comandos? Inicialmente, observe o primeiro código:
SELECT * FROM TABELA_VENDEDORES WHERE (DE_FERIAS = 'Sim') AND (YEAR(DATA_ADMISSAO) < 2016)
Uma vez que o campo DE_FERIAS é do tipo BIT (somente aceita os valores 0 ou 1), quando passamos a condição de que ele deve ser igual a ‘Sim’, o MySQL Workbench irá tentar buscar todos os registros que cumprem esse requisito. Como isso não confere com nenhum dado, o resultado final não representará de fato o que estávamos esperando.
Agora, observe o segundo código:
SELECT * FROM TABELA_VENDEDORES WHERE (DE_FERIAS = 1) AND (YEAR(DATA_ADMISSAO) < 2016)
Nesse caso, as duas condições que aparecem após o WHERE são válidas e, portanto, serão utilizadas para a realização do filtro. Desse modo, os vendedores listados serão apenas aqueles que estão de férias (indicado pelo campo DE_FERIAS = 1) e cuja data de admissão é inferior a 2016.
Continue estudando e se dedicando. Se surgir alguma dúvida, conte com o fórum.
Até mais, Anne!