SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Normalmente você não pode se referir a aliases de campo na WHERE
cláusula. (Pense nisso como o todo, SELECT
incluindo aliases, é aplicado após a WHERE
cláusula.)
Mas, como mencionado em outras respostas, você pode forçar o SQL a tratar SELECT
a ser tratado antes da WHERE
cláusula. Isso geralmente é feito entre parênteses para forçar a ordem lógica de operação ou com uma Expressão de tabela comum (CTE):
Parênteses / Subseleção:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
Ou veja a resposta de Adam para uma versão CTE do mesmo.
`daysdiff`
.