Forums Neueste Beiträge
 

pivot gruppiert nicht?

26/05/2010 - 16:17 von Irmgard Schwenteck | Report spam
Hallo,

irgendwie hatte ich das SQL-pivot so verstanden, daß als Ergebnis etwas
àhnliches herauskommt wie bei Pivot-tabellen in Excel.
Scheinbar ist es aber nur eine einfache kreuztabelle, ohne Gruppierung?

Beispiel:
ich hab eine Umsatztabelle mit
Filiale | Jahr | Monat | Tag | WG | Umsatz
-

das ist schon eine konsolidierte Tabelle, da gibts für jeden Tag,
Warengruppe,Filiale nur 1 Zeile.

Wenn ich die Monats-Umsàtze pro Filiale haben möchte, dachte ich, es
geht z.B. so:

select
Jahr,Monat,
[01],
[16]
from UmsatzFiliale
pivot (
sum(Umsatz) for Filiale in ([01],[16])
) as P where Jahr 10 order by Jahr,Monat

dann hàtte ichs auch mal drehen können - Monate als
Spaltenüberschriften, Filiale drunter - geht aber nicht.


Ich bekomme als Ergebnis der Abfrage nicht etwa
Jahr | Monat | 01 | 16
-
2010 01 ... ...
2010 02 ... ...

sondern pro Jahr und Monat soviele Zeilen, wie es noch Kombinationen mit
Tag + WG gibt.

Wieso summiert SQL-Server nicht über Jahr + Monat?

Es gab vor 1 Monat einen àhnlichen tread hier, aber ich habs ehrlich
gesagt, trotzdem nicht verstanden, wieso diese Pivot-Abfrage hier nicht
funktioniert.

Gruß
Irmgard

Wir sehn uns demnàchst wieder in de.comp.datenbanken.misc
 

Lesen sie die antworten

#1 Christa Kurschat
26/05/2010 - 17:19 | Warnen spam
Hallo Irmgard,

"Irmgard Schwenteck" schrieb im Newsbeitrag
news:
Hallo,

irgendwie hatte ich das SQL-pivot so verstanden, daß als Ergebnis etwas
àhnliches herauskommt wie bei Pivot-tabellen in Excel.
Scheinbar ist es aber nur eine einfache kreuztabelle, ohne Gruppierung?



Doch, eigentlich tut's.


Beispiel:
ich hab eine Umsatztabelle mit
Filiale | Jahr | Monat | Tag | WG | Umsatz
-

das ist schon eine konsolidierte Tabelle, da gibts für jeden Tag,
Warengruppe,Filiale nur 1 Zeile.

Wenn ich die Monats-Umsàtze pro Filiale haben möchte, dachte ich, es geht
z.B. so:

select
Jahr,Monat,
[01],
[16]
from UmsatzFiliale
pivot (
sum(Umsatz) for Filiale in ([01],[16])
) as P where Jahr 10 order by Jahr,Monat

dann hàtte ichs auch mal drehen können - Monate als Spaltenüberschriften,
Filiale drunter - geht aber nicht.


Ich bekomme als Ergebnis der Abfrage nicht etwa
Jahr | Monat | 01 | 16
-
2010 01 ... ...
2010 02 ... ...

sondern pro Jahr und Monat soviele Zeilen, wie es noch Kombinationen mit
Tag + WG gibt.

Wieso summiert SQL-Server nicht über Jahr + Monat?



Ich glaube, Deine Syntax ist falsch.

Lt. Hilfe müßte es so aussehen (Luftcode):

select
Jahr,Monat,
[01],
[16]
from ( select Jahr, Monat, Filiale from UmsatzFiliale where Jahr 10 ) as
p
pivot (
sum(Umsatz) for Filiale in ([01],[16])
) as pvt order by Jahr,Monat

Wir sehn uns demnàchst wieder in de.comp.datenbanken.misc



Leider nicht. Wenn hier dicht ist, bin ich auch weg.

Gruß
Christa

Ähnliche fragen