SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Normalmente no puede hacer referencia a los alias de campo en WHERE
cláusula. (Piense en ello como el SELECT
completo incluidos los alias, se aplica después de WHERE
cláusula.)
Pero, como se menciona en otras respuestas, puede obligar a SQL a tratar SELECT
para ser manejado antes del WHERE
cláusula. Esto generalmente se hace con paréntesis para forzar el orden lógico de operación o con una expresión de tabla común (CTE):
Paréntesis/Subselección:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
O vea la respuesta de Adam para una versión CTE de la misma.