Olá! Da forma que fiz, aparentemente também funciona. Está errada esta instrução?
select a.id, a.nome
from aluno a
where not exists (
select m.id
from matricula m
where m.aluno_id = a.id
and m.data >= (getdate() - 45)
);
Olá! Da forma que fiz, aparentemente também funciona. Está errada esta instrução?
select a.id, a.nome
from aluno a
where not exists (
select m.id
from matricula m
where m.aluno_id = a.id
and m.data >= (getdate() - 45)
);
Cleo não cheguei a fazer o curso de SQLServer, como esta a SQL no exercício ?
Acredito que esteja usando join ao contrário de where, certo ?
Olá, Matheus!
No exercício a resposta correta é esta:
select a.nome from aluno a
where
not exists
(select m.id from matricula m
where m.aluno_id = a.id and m.data > dateadd(DAY, -30, getdate())
);
Cleo pelo que eu vi você apenas usou uma função diferente para datas passando um intervalo maior, sua instrução também esta correta pois existem várias formas de fazer certas funções e se chegar ao mesmo resultado.
Matheus, utilizei o intervalo solicitado pelo exercício. Veja:
*"Mais EXISTS
Busque todos os alunos que não tiveram nenhuma matrícula nos últimos 45 dias, usando a instrução EXISTS.
Cole o código SQL aqui."*
Minha dúvida era apenas no cálculo de dias, mas como você bem falou, existem diversas formas de se conseguir o mesmo resultado. Pelo visto, do meu jeito também está correto. :-)
Valeu pela força!
Sim exatamente, não existe uma única e correta maneira de se fazer certas funções e SQL, o importante é você chegar no resultado desejado, as vezes vale ressaltar que talvez uma função fique mais lenta do que outra ai é necessário analisar a SQL e ver uma forma correto para se resolver.