SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
通常、WHERE
でフィールドエイリアスを参照することはできません 句。 (SELECT
全体と考えてください エイリアスを含め、WHERE
の後に適用されます 条項。)
ただし、他の回答で述べたように、SQLにSELECT
を処理させることができます。 WHERE
の前に処理されます 句。これは通常、操作の論理的な順序を強制するために括弧を使用するか、共通テーブル式(CTE)を使用して実行されます。
括弧/副選択:
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
または、同じCTEバージョンについてはAdamの回答を参照してください。