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

Dúvida - Exsists + Getdate()

Boa noite!

A query que fiz tbm está correta?

Select 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))

O resultado foi o mesmo e achei a sintaxe mais simples que a da resposta, mas não sei se daria na mesma em outra situação.

3 respostas

E qual era a query da resposta do exercício?

Olá Marco, query abaixo:

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, -45, getdate()) );

solução!

Sem utilizar o dateadd você consegue subtrair apenas a quantidade de dias, como na sua primeira query Getdate() - 45 você compara com 45 dias anteriores a data atual.

Já com o dateadd você poderia voltar meses, anos, horas...

https://msdn.microsoft.com/pt-br/library/ms186819.aspx

Comparando as duas consultas, realmente não tem nenhuma diferença para esse caso em específico.