Supposons que nous ayons une table # temp1, ce dont nous avons besoin ici est, nous voulons une colonne supplémentaire ABC et en cela, nous voulons imprimer la sortie comme (10-10 = 0), ( 20-10) = 10, (30-10 = 20), (40-10 = 30) et (50-10 = 40)

Nous avons donc créé une table et insérer un script ci-dessous.

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)

J'ai essayé comme ci-dessous, où il incrémente les valeurs lignes par lignes.

select ID,Name,Series, SUM(series) over(order by series asc Rows Between Unbounded Preceding and Current Row) ranking from #temp1

La sortie doit être:

ID|Name|Series|ABC
1 |  A |  10  | 0
2 |  B |  20  | 10
3 |  C |  30  | 20
4 |  D |  40  | 30
5 |  E |  50  | 40

Quelqu'un peut-il ici moi, comment faire cela.

-1
Madhur 15 nov. 2017 à 13:45

4 réponses

Meilleure réponse

Essayez la requête ci-dessous

select ID,Name,Series,(series - (select top 1 series from #temp1)) as abc from #temp1
1
Nandish B 15 nov. 2017 à 10:49

D'accord avec Sami. À moins que quelque chose d'autre ne soit destiné à la requête qui a été tentée, il semble que ce ne devrait pas être Série - 10, mais plutôt série - la première valeur de série du tableau?

Si tel est le cas, la réponse devrait être

select ID,Name,Series, Series - MIN(series) over 
(order by series asc Rows Between unbounded Preceding and Current Row) ABC from #temp1
1
Jaques 31 janv. 2018 à 20:14

C'est simplement Series - 10:

SELECT ID, Name, Series, Series - 10 AS ABC
FROM #Temp1;
2
Sami 15 nov. 2017 à 10:56

Sélectionnez ID, Nom, Série, (série - 10) comme abc à partir de # temp1

0
user6544480user6544480 17 nov. 2017 à 06:02
47305340