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!