SQL Server 中的复合 SUM [重复]
Posted
技术标签:
【中文标题】SQL Server 中的复合 SUM [重复]【英文标题】:Compounded SUM in SQL Server [duplicate] 【发布时间】:2014-03-10 11:56:11 【问题描述】:在sql server中是否可以得到复合总和?例如
月薪总额
一月 1000 1000
二月 1200 2200
三月 1000 3200
。 . .
。 . .
请帮忙。
【问题讨论】:
哪个版本的sql server 你试过什么?如果您有任何低于 SQL 2012 的版本,这可能是一个不错的起点。 pawlowski.cz/2010/09/… @VijaykumarHadalgi 它没有任何标识列 那你是怎么定义主键的呢? 【参考方案1】:Declare @t table( Months varchar(10), Salary int)
insert into @t
select 'Jan', 1000 union all
select 'Feb', 1200 union all
select 'Mar', 1000
;With CTE as
(
select *,ROW_NUMBER()over(order by (select null))rn from @t
)
,CTE1 as
(
select a.*,salary [Total] from CTE a where rn=1
union all
select a.*,a.Salary+Total from CTE a inner join CTE1 b on a.rn-b.rn=1
)
select * from cte1
【讨论】:
【参考方案2】:如果表结构是这样的table(id int identity(1,1),month varchar(10),salary int,total int)
那你可以试试:
select *,(select sum(salary)
from table b
where b.id<=a.id) as total
from table a
DEMO
【讨论】:
以上是关于SQL Server 中的复合 SUM [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SQL Server Management Studio 创建复合键?