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.