SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Normalt kan du ikke henvise til feltaliasser i WHERE klausul. (Tænk på det som hele SELECT inklusive aliaser, anvendes efter WHERE klausul.)
Men som nævnt i andre svar kan du tvinge SQL til at behandle SELECT skal håndteres før WHERE klausul. Dette gøres normalt med parenteser for at fremtvinge logisk operationsrækkefølge eller med et almindeligt tabeludtryk (CTE):
Parentes/Undervælg:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
Eller se Adams svar for en CTE-version af det samme.