SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
Biasanya Anda tidak dapat merujuk ke alias bidang di WHERE
ayat. (Anggap saja sebagai keseluruhan SELECT
termasuk alias, diterapkan setelah WHERE
klausa.)
Tetapi, seperti yang disebutkan dalam jawaban lain, Anda dapat memaksa SQL untuk memperlakukan SELECT
untuk ditangani sebelum WHERE
ayat. Ini biasanya dilakukan dengan tanda kurung untuk memaksa urutan operasi logis atau dengan Common Table Expression (CTE):
Tanda kurung/Subpilih:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
Atau lihat jawaban Adam untuk versi CTE yang sama.