我正在尝试选择结束日期在范围内的行。在我的dbo.subscription表中,我有startdate和enddate列。当我使用startdate时,查询运行,但是当我使用enddate时,它说列名无效。
我尝试在结束日期前后使用''或“” [],也尝试将列的全名写出(dbo.subscription.enddate),但这似乎没有什么不同。
;WITH cte AS (SELECT Membershipnumber as Id Row_number() OVER ( partition BY membershipnumber ORDER BY subscription.enddate DESC) AS rownumber FROM [dbo].[userprofile] INNER JOIN dbo.subscription ON userprofile.id = subscription.userprofileid INNER JOIN dbo.subscriptiontype ON subscriptiontype.id = subscription.subscriptiontypeid ) SELECT * FROM cte WHERE rownumber = 1 and enddate between'2014-12-31' and '2018-12-31' order by Id
错误信息:
Msg 207, Level 16, State 1, Line 21 Invalid column name 'enddate'. Msg 207, Level 16, State 1, Line 21 Invalid column name 'enddate'.
Tab Alleman.. 5
您最后的选择是SELECT FROM cte
。
并且cte
仅定义两列: Id
和RowNumber
。
enddate
未在中定义cte
。
您最后的选择是SELECT FROM cte
。
并且cte
仅定义两列: Id
和RowNumber
。
enddate
未在中定义cte
。