Sql 希望从以前的薪资中获得薪资添加

Sql 希望从以前的薪资中获得薪资添加,sql,sql-server,Sql,Sql Server,我有这样的桌子结构 id name salary manager 1 vishal 1000 Shiva 2 shweta 2000 ABC 3 Ankit 1500 Navodit 4 Smriti 1900 Navodit 5 Shiva 1100 Santosh 6 Navodit 2800 Santosh 还需要一个额外的列来计算薪资,如 对于第一个记录,它应该是相同的。但从第二个记录,它应该是第一个和

我有这样的桌子结构

id  name    salary  manager
1   vishal  1000    Shiva
2   shweta  2000    ABC
3   Ankit   1500    Navodit
4   Smriti  1900    Navodit
5   Shiva   1100    Santosh
6   Navodit 2800    Santosh
还需要一个额外的列来计算薪资,如
对于第一个记录,它应该是相同的。但从第二个记录,它应该是第一个和第二个记录工资的总和。在这种情况下,shweta的工资将是3000英镑,Ankit的工资将是4500英镑,以此类推。

您正在寻找一个累计金额。这是作为窗口功能提供的:

select t.*, sum(salary) over (order by id) as cumulative_salary
from t;

在我这边试试。sql中的累积和就可以了

Select *, 
    (Select SUM(TotalSalary) 
        From Salary S2 
        Where S2.id <= S1.id)
From Salary S1

您可以尝试以下查询

create table #Salary (id int, name varchar(20), salary int, manager varchar(20))
insert into #Salary values (1,   'vishal',  1000,   'Shiva'),
(2,   'shweta',  2000,    'ABC'),
(3,   'Ankit',   1500,    'Navodit'),
(4,   'Smriti',  1900,    'Navodit'),
(5,   'Shiva',   1100,    'Santosh'),
(6,   'Navodit', 2800,    'Santosh')

select t1.id, t1.name, t1.salary, SUM(t2.salary) as [SumSal]
from #Salary t1
inner join #Salary t2 on t1.id >= t2.id
group by t1.id, t1.name, t1.salary
order by t1.id
输出如下所示

id  name    salary  SumSal
--------------------------
1   vishal  1000    1000
2   shweta  2000    3000
3   Ankit   1500    4500
4   Smriti  1900    6400
5   Shiva   1100    7500
6   Navodit 2800    10300

你的问题被否决了,因为你没有表现出任何尝试或研究。在发布问题之前,请花时间尝试自己解决问题并做一些研究。关于如何在SQL Server中获取累积总和,有100多个资源,我相信在您最喜欢的搜索引擎上搜索会得到您想要的结果。Stack Overflow并不是一项免费的编码服务,这里的担保人希望您在向他们寻求帮助之前,将精力投入到回答您自己的问题上,或者免费为您这样做。谢谢。可能重复的两次扫描的表,三角形连接,似乎有点过头了。比你们非常多!!!