SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Обикновено не можете да се позовавате на псевдоними на полета в WHERE
клауза. (Мислете за това като за целия SELECT
включително псевдоними, се прилага след WHERE
клауза.)
Но, както беше споменато в други отговори, можете да принудите SQL да третира SELECT
да се обработва преди WHERE
клауза. Това обикновено се прави със скоби, за да се наложи логически ред на операцията или с общ израз на таблица (CTE):
Скоби/Подселекция:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
Или вижте отговора на Адам за CTE версия на същото.