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 la WHERE
cláusula. (Piense en ello como todo el SELECT
alias incluido, se aplica después de la WHERE
cláusula).
Pero, como se menciona en otras respuestas, puede forzar el tratamiento de SQL para SELECT
que se maneje antes de la 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.
`daysdiff`
.