SQL MSSQL die ersten 80 % von SUM

crykiller

Cadet 4th Year
Registriert
März 2006
Beiträge
71
Hallo Leute,

System: SQL SERVER 2008 Abfragen im Management Studio

ich hoffe ihr könnt mir helfen. Folgendes Szenario, ich habe eine Star Schema auf dem eine Abfrage erfolgen welche Produktmarken die Top 80% des Umsatzes ausmachen.

Nun wollte ich mit der OLAP Funktion PERCENT_RANK mein Ergebnis, das halt von allen Produktmarken den Umsatz ausgibt, berarbeiten.

Leider scheint es diese Funktion im MS SQL Server nicht zu geben.

Habt ihr eine Idee was ich noch versuchen könnte?

- Mein letzter Ansatz war, dass ich das Ergebnis durchlaufe und in jeder Zeile eine neue Spalte erzeuge die immer den Umsatz mit allen vorherigen Zeilen addiert. Dann könnte ich an der Stelle Filtern an der die 80 % überschritten werden. Leider ist mir das bisher nicht gelungen.

Hoffe auf eure Hilfe..

Gruß der crykiller
 
Also ich würde dir spontan empfehlen, deine Produkte mittels "Group By" zu gruppieren und die Umsätze entsprechend summieren. Mittels "Order BY" werden dann die Einträge der Größe des Umsatzes nach sortiert.
Jetzt ist nur noch die Frage wie du Zeile für Zeile den Prozentsatz addierst bis du 80% hast. Hat da einer eine Idee?
 
Zuletzt bearbeitet:
Genau da hängt es bei mir..

Danke für deine Antwort
 
Zuletzt bearbeitet:
Zuletzt bearbeitet: (Edit: Value wäre der Umsatz die ID das Produkt. Poblematisch könnte es bei gleichen Umsätzen werden)
Hallo Zusammen,

vielen Dank erstmal für eure Antworten.

Leider kann ich die Daten erst nach einer Gruppierung kumulieren, was eine eindeutige Identifikation der Datensätze unmöglich macht.

Trotzdem Danke für eure Hilfe

Werde mich melden falls ich noch eine Lösung finde.

Gruß
 
Irgenwie bin ich mir noch nicht ganz sicher, dass ich dein Problem verstanden habe....

Willst du a) die Top 80% Produktmarken bezüglich des Umsatzes
oder b) die Produktmarken, die 80% des Umsatzes ausmachen?

Ohne viel zu Überlegen (war ne sh1ce Nacht...)
a) den Umsatz über die Produktmarke summieren, absteigend nach Umsatzsumme sortieren und die Top 80% selektieren
b) den Umsatz über die Produktmarke summieren, absteigend sortieren und als Eingabe für einen Cursor verwenden. Im Cursor summieren, solange der Umsatz < 80% des Gesammtumsatzes ist.

oder meinst du c)? :confused_alt:
 
Zurück
Oben