SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Normalmente non puoi fare riferimento agli alias di campo in WHERE
clausola. (Pensalo come l'intero SELECT
inclusi gli alias, viene applicato dopo il WHERE
clausola.)
Ma, come menzionato in altre risposte, puoi forzare SQL a trattare SELECT
da gestire prima del WHERE
clausola. Questo di solito viene fatto con parentesi per forzare l'ordine logico di operazione o con un'espressione di tabella comune (CTE):
Parentesi/Sottoselezione:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
Oppure vedi la risposta di Adam per una versione CTE dello stesso.