Sql 如何将一列的第一条记录与另一列的第二条记录相加?

Sql 如何将一列的第一条记录与另一列的第二条记录相加?,sql,sql-server,Sql,Sql Server,我尝试将一列的第二条记录与另一列的第一条记录求和,并将结果存储在新列中 下面是SQL Server表的示例 Emp_Code Emp_Name Month Opening_Balance G101 Sam 1 1000 G102 James 2 -2500 G103 David

我尝试将一列的第二条记录与另一列的第一条记录求和,并将结果存储在新列中

下面是SQL Server表的示例

Emp_Code   Emp_Name    Month          Opening_Balance   
 G101      Sam          1              1000              
 G102      James        2              -2500             
 G103      David        3              3000     
 G104      Paul         4              1800     
 G105      Tom          5              -1500      
我试图在新的Reserve列中获得如下输出

实际上,计算保留列的规则是

第一个月与期初余额相同 其余月份的第二个月准备金=第一个月准备金+第二个月期初余额
你似乎想要一个累积的总数。在SQL Server 2012+中,您将执行以下操作:

select t.*,
       sum(opening_balance) over (order by [Month]) as Reserve
from t;
在早期版本中,可以使用相关子查询或应用:


你似乎想要一个累积的总数。在SQL Server 2012+中,您将执行以下操作:

select t.*,
       sum(opening_balance) over (order by [Month]) as Reserve
from t;
在早期版本中,可以使用相关子查询或应用:


您可以进行自连接

SELECT t.Emp_Code, t.Emp_Name, t.Month, t.Opening_Balance, t.Opening_Balance + n.Reserve
FROM Table1 t
JOIN Table2 n
ON t.Month = n.Month - 1

您可以进行自连接

SELECT t.Emp_Code, t.Emp_Name, t.Month, t.Opening_Balance, t.Opening_Balance + n.Reserve
FROM Table1 t
JOIN Table2 n
ON t.Month = n.Month - 1

请使用SQL Server版本标记您的问题。可能的重复请使用SQL Server版本标记您的问题。可能的重复