SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Normalt kan du inte referera till fältalias i WHERE
klausul. (Tänk på det som hela SELECT
inklusive alias, tillämpas efter WHERE
klausul.)
Men, som nämnts i andra svar, kan du tvinga SQL att behandla SELECT
ska hanteras före WHERE
klausul. Detta görs vanligtvis med parentes för att tvinga fram logisk operationsordning eller med ett gemensamt tabelluttryck (CTE):
Parentes/Underval:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
Eller se Adams svar för en CTE-version av densamma.