白板的微信
2019-07-02 17:19:36
引用WHERE子句中的列別名SELECT logcount, logUserID, maxlogtm , DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiffFROM statslogsummaryWHERE daysdiff > 120我得到“無效列名daysdiff”。Maxlogtm是一個datetime字段。是這些小事讓我發(fā)瘋。
3 回答

冉冉說
TA貢獻1877條經(jīng)驗 獲得超1個贊
SELECT logcount, logUserID, maxlogtm, DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiffFROM statslogsummaryWHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
WHERE
SELECT
WHERE
SELECT
WHERE
SELECT *FROM( SELECT logcount, logUserID, maxlogtm, DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff FROM statslogsummary ) as innerTableWHERE daysdiff > 120

MMMHUHU
TA貢獻1834條經(jīng)驗 獲得超8個贊
如果要在WHERE子句中,您需要將其包裝在子SELECT中,或CTE:
WITH LogDateDiff AS
(
SELECT logcount, logUserID, maxlogtm
, DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
)
SELECT logCount, logUserId, maxlogtm, daysdiff
FROM LogDateDiff
WHERE daysdiff > 120

絕地?zé)o雙
TA貢獻1946條經(jīng)驗 獲得超4個贊
outer apply
:
select s.logcount, s.logUserID, s.maxlogtm, a.daysdifffrom statslogsummary as s outer apply (select datediff(day, s.maxlogtm, getdate()) as daysdiff) as awhere a.daysdiff > 120
添加回答
舉報
0/150
提交
取消