SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Zwykle nie możesz odwoływać się do aliasów pól w WHERE klauzula. (Pomyśl o tym jako o całym SELECT łącznie z aliasami, jest stosowany po WHERE klauzula.)
Ale, jak wspomniano w innych odpowiedziach, możesz zmusić SQL do traktowania SELECT do obsługi przed WHERE klauzula. Odbywa się to zwykle za pomocą nawiasów, aby wymusić logiczną kolejność operacji lub za pomocą wspólnego wyrażenia tabeli (CTE):
Nawiasy/podwybór:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
Lub zobacz odpowiedź Adama na wersję CTE tego samego.