cur*_*ous 3 sql sql-server sum sql-server-2012
declare @t table (cid int, amount int, cname varchar)
insert into @t
values (6, 20, 'C'), (7, 30, 'C'), (8, 10, 'C'), (9, 10, 'D')
select
sum(amount) over (partition by cname order by cid),
*
from @t
Run Code Online (Sandbox Code Playgroud)
引发错误:
'order'附近的语法不正确。
https://msdn.microsoft.com/zh-CN/library/ms187810.aspx
SQL Server 2012中是否不支持按订单总和?如果我删除order by并仅使用分区有效,但对于“ C”,所有行均得到60。我想总跑。
更多信息:
数据库选项->兼容性级别仅显示2000、2005和2008,并选择2008。
尝试跑步
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = 110
Run Code Online (Sandbox Code Playgroud)
引发错误:
数据库兼容性级别的有效值为80、90或100。
SQL Server 2012+之前不支持累积和。大概您正在使用SQL Server 2005或2008,或者您的兼容性设置为105或更小(请参阅此处)。
在这些版本中,您可以使用outer apply:
select t.*, s.amount
from @t t outer apply
(select sum(t2.amount) as amount
from @t t2
where t2.cname = t.cname and t2.cid <= t.cid
) s;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1338 次 |
| 最近记录: |