sql server 2005引入Row_number()
over(PARTITION BY..ORDER BY.. ) 不能用Sum
用sum要Group By
我只修正over(PARTITION BY..ORDER BY.. )
不清楚你要查什么,所以没有修正其它语法错误,比如没有Group by
select * from (
select t.jh, mth, sum (ryou_ sum) as ryou_suml,Row_number() over (PARTITION BY jh ORDER BY mth ) num from
(select jh, month (rq) mth, sum (ryou) ryou_ sum from CSJING_ SCSJB
where rq >='2022-01-01' and rq<='2022-12-31' group by month(rq),jh) t) tt
pivot
(max (ryou_ sum1 )
for mth in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12])) as x
sqlserver 2008R2 partition不支持聚合聚合函数,row_number(),rank()支持,聚合函数要升级到2012以上的sqlserver
2008的 sum() 开窗函数 还不支持 order by,后面的版本才行
要累计求和的话,用子查询
感觉是sql server 不同版本对语法不支持或有差别的问题,sql中的关键字一般会使用不同颜色标出的,但是sql server 2008R2对应的sql中PARTITION BY只有by被标出,PARTITION 没有标出,另一个库中则完全标出,
而pivot函数是关键字函数,但是2008版本没有标出。你可以把大小写完全统一试试
升级数据库版本最好,2008都是多少年前的产品了。。很多新功能新特性都不支持