Hallo zusammen,
ich nutze den SQL Server 2005 und suche nach einer Möglichkeit, Daten über Monate hinweg kumuliert auszugeben.
Dabei möchte ich nicht über die Analysis Services gehen, sondern den relationalen Weg gehen, aber gern die OLAP-SQL-Erweiterungen nutzen.
Für Oracle habe ich ein sehr schönes Beispiel unter http://www.oracle.com/global/de/community/tipps/analyticFunctions/index.html
gefunden, dabei wird die Query wie folgt verwendet:
<code>select MONAT, UMSATZ_EUR, WERBUNG_TV_EUR, WERBUNG_ZEITG_EUR, ANZAHL_VERKAEUFER, SUM(UMSATZ_EUR) over ( partition by JAHR order by MONAT rows between unbounded preceding and current row ) as KUM_UMSATZ from VERKAUF</code>
Das SQL-Server-2005-Skript habe ich mir angepasst (NUMBER in NUMERIC geändert), ich poste es hier einfach noch einmal rein:
<code>
CREATE table "VERKAUF" (
"JAHR" numeric(4),
"MONAT" numeric(2),
"UMSATZ_EUR" numeric(10,2),
"WERBUNG_TV_EUR" numeric(10,2),
"WERBUNG_ZEITG_EUR" numeric(10,2),
"ANZAHL_VERKAEUFER" numeric(10)
)
insert into verkauf values ('2004','11',130000, 14000, 400, 10)
insert into verkauf values ('2004','12',140000, 13200, 700, 10)
insert into verkauf values ('2005','01',100000, 9000, 1000, 10)
insert into verkauf values ('2005','02',103000, 9500, 900, 10)
insert into verkauf values ('2005','03',112000, 10000, 1500, 10)
insert into verkauf values ('2005','04',90000, 12000, 1000, 8)
insert into verkauf values ('2005','05',98000, 13000, 1000, 8)
insert into verkauf values ('2005','06',70000, 4000, 5000, 9)
insert into verkauf values ('2005','07',109010, 12000, 2000, 15)
insert into verkauf values ('2005','08',120000, 10000, 500, 15)
insert into verkauf values ('2005','09',130000, 9000, 1000, 15)
insert into verkauf values ('2005','10',150000, 15000, 1000, 15)
insert into verkauf values ('2005','11',170000, 18000, 1000, 15)
insert into verkauf values ('2005','12',200000, 18000, 1000, 15)
insert into verkauf values ('2006','01',160000, 10000, 1000, 10)
insert into verkauf values ('2006','02',140000, 10200, 1500, 10)
</code>
Wie kann ich nun im SQL Server 2005 die Umsätze für jedes Jahr mit jedem Monat aufsummiert (kumuliert) erhalten?
Viele Grüße
Andreas Möhlenbrock
ich nutze den SQL Server 2005 und suche nach einer Möglichkeit, Daten über Monate hinweg kumuliert auszugeben.
Dabei möchte ich nicht über die Analysis Services gehen, sondern den relationalen Weg gehen, aber gern die OLAP-SQL-Erweiterungen nutzen.
Für Oracle habe ich ein sehr schönes Beispiel unter http://www.oracle.com/global/de/community/tipps/analyticFunctions/index.html
gefunden, dabei wird die Query wie folgt verwendet:
<code>select MONAT, UMSATZ_EUR, WERBUNG_TV_EUR, WERBUNG_ZEITG_EUR, ANZAHL_VERKAEUFER, SUM(UMSATZ_EUR) over ( partition by JAHR order by MONAT rows between unbounded preceding and current row ) as KUM_UMSATZ from VERKAUF</code>
Das SQL-Server-2005-Skript habe ich mir angepasst (NUMBER in NUMERIC geändert), ich poste es hier einfach noch einmal rein:
<code>
CREATE table "VERKAUF" (
"JAHR" numeric(4),
"MONAT" numeric(2),
"UMSATZ_EUR" numeric(10,2),
"WERBUNG_TV_EUR" numeric(10,2),
"WERBUNG_ZEITG_EUR" numeric(10,2),
"ANZAHL_VERKAEUFER" numeric(10)
)
insert into verkauf values ('2004','11',130000, 14000, 400, 10)
insert into verkauf values ('2004','12',140000, 13200, 700, 10)
insert into verkauf values ('2005','01',100000, 9000, 1000, 10)
insert into verkauf values ('2005','02',103000, 9500, 900, 10)
insert into verkauf values ('2005','03',112000, 10000, 1500, 10)
insert into verkauf values ('2005','04',90000, 12000, 1000, 8)
insert into verkauf values ('2005','05',98000, 13000, 1000, 8)
insert into verkauf values ('2005','06',70000, 4000, 5000, 9)
insert into verkauf values ('2005','07',109010, 12000, 2000, 15)
insert into verkauf values ('2005','08',120000, 10000, 500, 15)
insert into verkauf values ('2005','09',130000, 9000, 1000, 15)
insert into verkauf values ('2005','10',150000, 15000, 1000, 15)
insert into verkauf values ('2005','11',170000, 18000, 1000, 15)
insert into verkauf values ('2005','12',200000, 18000, 1000, 15)
insert into verkauf values ('2006','01',160000, 10000, 1000, 10)
insert into verkauf values ('2006','02',140000, 10200, 1500, 10)
</code>
Wie kann ich nun im SQL Server 2005 die Umsätze für jedes Jahr mit jedem Monat aufsummiert (kumuliert) erhalten?
Viele Grüße
Andreas Möhlenbrock
Comment