2016-07-01 15 views
0

Ich habe Probleme bei der Zuweisung der Ränge für die folgenden Szenarien. In meinem Szenario laufende Summe basierend auf dem Cnt-Feld berechnet.Wählen Sie für den gesamten Rang basierend auf den Spaltenwerten

Meine SQL-Abfrage sollte Rank-Werte wie unter Ausgabe zurückgeben. Pro Seite sollte es nur 40 Zeilen akzeptieren, so dass die Zuweisung von Rängen nur 40 Datensätze enthält. Wenn die laufende Gesamtsumme 40 überschritten wird, sollte dies den Rang ändern. Für jeden Zählwert 40 sollte er die Rangwerte ändern.

Es wäre eine große Hilfe, wenn ich SQL-Abfrage Werte zurück

select f1,f2,sum(f2) over(order by f1) runnign_total 
from [dbo].[Sheet1$] 

OutPut bekommen:

ID  cnt  Running Total Rank 
1  4  4    1 
2  5  9    1 
3  4  13    1 
4  4  17    1 
5  4  21    1 
6  5  26    1 
7  4  30    1 
8  4  34    1 
9  4  38    1 
10  4  42    2 
11  4  46    2 
12  4  50    2 
13  4  54    2 
14  4  58    2 
15  4  62    2 
16  4  66    2 
17  4  70    2 
18  4  74    2 
19  4  78    2 
20  4  82    3 
21  4  86    3 
22  4  90    3 

enter image description here

Antwort

1
select f1,f2,sum(f2) over(order by f1) running_total, Floor(sum(f2) over(order by f1)/40) [rank] 
from [dbo].[Sheet1$] 
+0

Danke Phritzy .. Seine gearbeitet!. –

Verwandte Themen