vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datenbanken   |   VB-Versionen: VB2005, VB2008, VB201008.06.11
Mit SQL-SELECT Werte kumulativ berechnen

Es wird an einem Beispiel ein mögliches Prinzip gezeigt, wie man mittels SQL-SELECT-Anweisung Werte kumulativ summieren kann.

Autor:   Dietrich HerrmannBewertung:  Views:  10.841 
ohne HomepageSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

Ich gehe von meinem Tipp Zeilen nummerieren bei SQL-SELECT aus, mit dem man mittels SELECT INTO... eine Tabelle erzeugt hat, bei der die Zeilen durchnummeriert und somit 'numerisch' geordnet sind. Das mache ich so, weil im Normalfall, wenn man in der Tabelle einen Primärschlüssel anwendet, dadurch nicht unbedingt eine solche Ordnung durch das Schlüsselfeld besteht, wie man sie braucht.

Die Tabelle 'TestKumu' sähe also im Prinzip so aus:

rowNum  Wert
1       20,00
2       12,34
3       33,50
4       21,12
...

Eine entsprechende SELECT-Anweisung für die Berechnung der Kumulativwerte kann man dann so schreiben:

SELECT a.Wert, (SELECT SUM(b.Wert) FROM TestKumu AS b 
  WHERE b.rowNum <= a.rowNum) AS kumuWert FROM TestKumu AS a

Das Ergebnis wäre dann:

Wert    kumuWert
20,00   20,00
12,34   32,34
33,50   65,84
21,12   86,96
...



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.