假设我们有一个表#temp1,我们需要的是,我们想要一个额外的列 ABC ,并且我们想要将输出打印为(10-10 = 0 ),(20-10)= 10,(30-10 = 20),(40-10 = 30)和(50-10 = 40)
因此,我们在下面创建了一个表格和插入脚本。
Create table #temp1 (ID Int Identity(1,1),Name varchar(10),Series bigint)
insert into #temp1 values('A',10)
insert into #temp1 values('B',20)
insert into #temp1 values('C',30)
insert into #temp1 values('D',40)
insert into #temp1 values('E',50)
我尝试如下,其中逐行递增值。
select ID,Name,Series, SUM(series) over(order by series asc Rows Between Unbounded Preceding and Current Row) ranking from #temp1
输出应为:
ID|Name|Series|ABC
1 | A | 10 | 0
2 | B | 20 | 10
3 | C | 30 | 20
4 | D | 40 | 30
5 | E | 50 | 40
任何人都可以在这里,如何做到这一点。
答案 0 :(得分:2)
只是Series - 10
:
SELECT ID, Name, Series, Series - 10 AS ABC
FROM #Temp1;
答案 1 :(得分:1)
尝试以下查询
select ID,Name,Series,(series - (select top 1 series from #temp1)) as abc from #temp1
答案 2 :(得分:1)
同意萨米。除非从尝试的查询中有其他内容,否则它似乎不应该是Series - 10,而是系列 - 表中的第一个系列值?
如果是这种情况,那么答案应该是
select ID,Name,Series, Series - MIN(series) over
(order by series asc Rows Between unbounded Preceding and Current Row) ABC from #temp1
答案 3 :(得分:0)
从#temp1
中选择ID,名称,系列,(系列 - 10)作为abc