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 no
WHERE
cláusula. (Pense nisso como todo o SELECT
incluindo aliases, é aplicado após o WHERE
cláusula.) Mas, como mencionado em outras respostas, você pode forçar o SQL a tratar
SELECT
para ser tratado antes do 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.