我得到的錯誤爲:SQL Server的 「排序依據」 和 「行」 在窗口函數子句不能在SQL Server工作2014
Incorrect syntax near 'ROWS'.
而在SQL服務器2014執行下面的查詢:
select SC_CODE, [Date] , High ,Low,
Max(High) over (partition by SC_CODE
order by [Date]
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) as 7DayHigh,
High/Max(High) over (partition by SC_CODE) * 100 as Percentage_wrt_High,
Min(Low) over (partition by SC_CODE
order by [Date]
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) as 7DayLow,
Low/Min(Low) over (partition by SC_CODE) * 100 as Percentage_wrt_Low
from dbo.NSE
據我所知,Windows文章和此論壇帖子,分區由SQL Server 2012+支持。
請建議,如果要安裝,以便通過條款正確使用分區需要任何插件或更新。或者可能使用的任何解決方法。
補充結論: 如果我註釋掉rows between
部分,然後我得到的錯誤是:
Incorrect syntax near 'order'.
如果我註釋掉order by
部分還,查詢被沒有任何錯誤執行。
因此,簡而言之,分區的子句工作正常,但按順序和行子條款添加到查詢時,我得到了上面提到的錯誤。
這是一個非常基本的查詢,但今後,我打算爲分析目的添加更多列,並確定詳細信息,例如過去7天高,過去1個月高,過去52周高,7天移動平均線,1個月移動平均線等
任何可能擴展到我的大範圍的建議/解決方法也歡迎。謝謝。
標識符不能啓動與數字(https://msdn.microsoft.com/en-us/library/ms175874.aspx),他們必須由雙引號或括號分隔。 – Pred
您的屏幕截圖僅顯示SQL Server ** Management Studio **的版本,而不是您正在使用的_server_的版本。 'select @@ version'給你什麼? –
它提供了:微軟的SQL Server 2005 - 9.00.3042.00(英特爾X86) \t 2007年2月9日22時47分07秒 \t版權所有(C)1988-2005微軟公司 \t Express版本在Windows NT 6.1(生成7601:服務包1) – Wacao