falsch verstanden.
Wir haben x Umsätze. Diese verteilen sich auf verschiedene Produktkategorien.
Ich möchte jetzt wissen, welches die Umsatzstärksten Produktkategorien sind. Um einzugrenzen, wieviele ich angezeigt haben möchte, ist festgelegt, dass diese Produktkategorie(n) zusammen 20% des Gesamtumsatzes ausmachen sollen. Die benötigten Informationen stehen in zwei Tabellen.
D.h. ich muss erst die Tabellen joinen (in meinen Fall ist es die ProduktID)(kein Problem), errechne dann den gesamtumsatz (kein Problem), die Umsätze je Produktkategorie (auch kein Problem), errechne die Anteile am Gesamtumsatz (kein Problem) und sortiere das ganze absteigend (ebenfalls leicht).
Jetzt habe ich eine Liste, den größten Wert oben, die mir alle Produktkategorien anzeigt und den Anteil am Gesamtumsatz.
Das Problem besteht nun darin, herauszufinden, welche Produktkategorien nun 20% des Gesamtumsaztes ausmachen, denn ich will, falls es mehre Kategorien gibt, die mehr als 20% des Gesamtumsatzes ausmachen, nur den Umsatzstärksten. Rein logisch betrachtet muss folgendes passieren:
Nimm dir den ersten Prozentwert, schaue, ob dieser größergleich 20 ist. Ja --> Ende (zeige nur den ersten an) Nein --> addiere zu dem Wert der ersten Zeile den Wert der zweiten und schaue, oder der Wert nun größergleich 20 ist. Ja --> Ende (zeige die ersten beiden Zeilen an) Nein --> USW.
Aber wie zur Hölle geht das mit SQL?