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 того же самого.
`daysdiff`
.