SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Normaal gesproken kunt u niet verwijzen naar veldaliassen in de WHERE
clausule. (Zie het als de hele SELECT
inclusief aliassen, wordt toegepast na de WHERE
clausule.)
Maar, zoals vermeld in andere antwoorden, kunt u SQL dwingen om SELECT
. te behandelen te behandelen vóór de WHERE
clausule. Dit wordt meestal gedaan met haakjes om de logische volgorde van bewerking af te dwingen of met een Common Table Expression (CTE):
Haakjes/Subselect:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
Of bekijk Adams antwoord voor een CTE-versie van hetzelfde.