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并不是一项免费的编码服务,这里的担保人希望您在向他们寻求帮助之前,将精力投入到回答您自己的问题上,或者免费为您这样做。谢谢。可能重复的两次扫描的表,三角形连接,似乎有点过头了。比你们非常多!!!