syntax - 'order' 附近的语法不正确。运行总计。 SQL Server 2012

标签 syntax sql-server-2012 cumulative-sum

这段代码:

select 
    AccountCode.AccountCodeID,
    sum(AccountCode.AccountCodeID) Over (order by AccountCodeID) as RunningTotal
from 
    AccountCode

导致此错误消息:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near 'order'.

关于 SQL Server 2012。感谢建议。

最佳答案

语法看起来不错 - 所以它应该适用于 SQL Server 2012。

有两种可能仍然无效:

  • 您正在运行 SQL Server 2012 Management Studio,但针对旧版 SQL Server 引擎 版本 - 您可以通过运行以下命令来检查:

    SELECT @@VERSION
    
  • 您运行的数据库兼容性级别较低,因此不支持 SQL Server 2012 功能,例如 OVER (ORDER BY... ) 窗口函数。

    通过对您的数据库运行此命令来找出答案:

    SELECT name, compatibility_level 
    FROM sys.databases 
    WHERE database_id = DB_ID()
    

    SQL Server 2012 的兼容性级别应为 110 - 如果低于该级别,您可能需要更改该级别。

更新:由于您已确定此数据库的兼容性级别为80 (= SQL Server 2000),因此您需要将其更改为更新的版本。要将数据库升级到应支持这些窗口函数的兼容性级别 105 (SQL Server 2008 R2),请使用以下命令:

ALTER DATABASE (YourDatabaseName)
SET COMPATIBILITY_LEVEL = 105;

你就完成了。现在您的查询应该可以正常工作了。

关于syntax - 'order' 附近的语法不正确。运行总计。 SQL Server 2012,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41831184/

相关文章:

ssis - 可以在SSIS中实现总数,而无需任何手动编码吗?

javascript - 如果我们使用 vue-cli 和 webpack-simple 来初始化 vue 项目,那么我们在编码时使用 ES5 还是 ES6 呢?

c - 为什么 C 允许在 block 周围省略大括号?

reporting-services - 使用表达式动态决定打开哪个子报表

sql-server - SQL Server 2012 中的日期转换问题

mysql - 如何将 mysql 查询转换为 microsoft sql 查询

python - 分组依据和引用移位值

excel - 从 Excel 中的多个主体计算 PMT

vb.net - 即使在 VB.NET 中调用无参数函数时也强制使用括号?

syntax - 在Raku类定义中, "has"关键字在 "method"之前是什么意思?