2
respostas

[Projeto] 05-Consultando dados- 10- Seleção composta

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

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!