SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Normalement, vous ne pouvez pas faire référence aux alias de champ dans la WHEREclause. (Considérez-le comme l'ensemble des SELECTalias, y compris, est appliqué après la WHEREclause.)
Mais, comme mentionné dans d'autres réponses, vous pouvez forcer SQL à traiter SELECTpour être traité avant la WHEREclause. Cela se fait généralement avec des parenthèses pour forcer l'ordre logique de fonctionnement ou avec une expression de table commune (CTE):
Parenthèse / Sous-sélection:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
Ou voir la réponse d'Adam pour une version CTE de la même chose.
`daysdiff`.