Laden...

Select ... Pivot

Erstellt von Grumbler85 vor 15 Jahren Letzter Beitrag vor 15 Jahren 951 Views
G
Grumbler85 Themenstarter:in
538 Beiträge seit 2008
vor 15 Jahren
Select ... Pivot

verwendetes Datenbanksystem: MS SQL 2005 EE

Hallo,

ich versuche Momentan per SQL eine Tabelle zu einer Kreuztabelle umzuformen.
Nun ist es so, dass SQL 2005 und auch SQL 2008 das angeblich können ohne auf irgendwelche CASE Befehle zurückzugreifen.
Allerdings bekomm ich es nicht hin von daher bitte ich um eure Hilfe.
Hier mein bisher erzeugter SQL:


SELECT
    OrderID, [2007], [2008]
FROM
    vBusinessVolumePerInvoice
PIVOT SUM(SubTotal)
    FOR(YEAR(InvoiceDate)) IN(2007, 2008)

Am Ende wäre es natürlich noch schön, wenn das Jahr nich angegeben werden müsste, sondern einfach alle Jahre aus der Datenbank genutzt würden - aber das ist nebensächlich.

Kompatibilitätsmodus ist auf SQL 2005

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

1.200 Beiträge seit 2007
vor 15 Jahren
SELECT
    OrderID, sum([2007]), sum([2008])
FROM
    vBusinessVolumePerInvoice
PIVOT SUM(SubTotal)
    FOR(YEAR(InvoiceDate)) IN(2007, 2008)

Ich hab sowas noch nie gemacht und kenne den SQL Server nicht, aber ich denke dir fehlt da die Aggregation.

Welchen Output willst du erzielen? Subtotals pro OrderID und Jahr? Wie sieht die Tabelle genau aus?

Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!