SQL Server 2005: PIVOT / UNPIVOT / Kreuztabelle in einer View?


Software Office, Browser, E-Mail-Clients, Datenbanken etc.

Antwort
 
Themen-Optionen
Alt 27.09.2007, 14:25   #1 (permalink)
Frage SQL Server 2005: PIVOT / UNPIVOT / Kreuztabelle in einer View?

Hallo zusammen,

ich weiß zwar, dass es beim SQL Server 2005 eine PIVOT/UNPIVOT-Funktion gibt, blicke da aber leider nicht richtig durch.

Vielleicht kann mir jemand erklären, wie ich eine VIEW erstelle die folgende Ausgabe liefert.

Als Beispiel eine Tabelle mit den Feldern Name, Datum, Umsatz.

Als Ergebnis hätte ich gerne folgendes:

***********01*****02*****03*****04******usw.
Name1****1000***1500***2500***1000******
Name2*****800****700****800******0******

Also das Datum in der Form TAG.MONAT.JAHR muss aufgeteilt/gruppiert werden nach Monat. Die Werte entsprechend gruppiert nach NAME sollen dann wie in einer PIVOT-Tabelle bei Excel angezeigt werden.

Versteht ihr was ich meine? Kann mir jemand helfen?
Vielen Dank!
__________________
Gruss
faulwurf
faulwurf ist offline   Mit Zitat antworten

Alt 28.09.2007, 10:50   #2 (permalink)
AW: SQL Server 2005: PIVOT / UNPIVOT / Kreuztabelle in einer View?

PIVOT habe ich noch nicht genutzt. Wer braucht das schon?

Nur damit ich es richtig verstehe:
Du hast eine Tabelle die so aussieht:
Code:
+-------+------------+---------+
| NAME  | DATUM      | UMSATZ  |
+-------+------------+---------+
| Name1 | 2007.03.15 | 1000.00 |
| Name2 | 2007.05.23 |  512.12 |
| Name1 | 2007.11.12 | 3455.00 |
| Name3 | 2007.10.02 | 1233.00 |
| Name3 | 2007.04.27 | 1234.00 |
+-------+------------+---------+
und willst dann
Code:
+-------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| NAME  | 01      | 02      | 03      | 04      | 05      | 06      | 07      | 08      | 09      | 10      | 11      | 12      |
+-------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
| Name1 |         |         | 1000.00 |         |         |         |         |         |         |         | 3455.00 |         |
| Name2 |         |         |         |         |  512.12 |         |         |         |         |         |         |         |
| Name3 |         |         |         | 1234.00 |         |         |         |         |         | 1233.00 |         |         |
+-------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+
Das Datum kannst Du z.B. mit einem substr(DATUM,3,2) rausschneiden. Spontan wäre dann bei mir folgender Script rausgekommen, ich hab den aber nicht getestet, da mir dafür gerade die Zeit fehlt.
Code:
SELECT NAME [0], [1], [2], [3], [4] ...
FROM
(SELECT NAME, DATUM, UMSATZ
    FROM UmsatzTable) AS SourceTable
PIVOT
(
SUM(UMSATZ)
FOR substr(DATUM,3,5) IN ([0], [1], [2], [3], [4] ...)
) AS PivotTable
__________________
Man reiche mir mein LART!
Kein Support bei IT-Fragen via ICQ, Skype, PN oder Email!
(Stammuser ausgenommen)
Xaicon ist offline   Mit Zitat antworten
Antwort

Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL Server 2005 - SSIS Packages verwalten? faulwurf Software 0 04.09.2007 09:05
Hamburg LIVE: WWE RAW Survivor Series 2005 Tour aus Hamburg (16.11.2005) JohnCena266 Sport 8 19.06.2007 13:18
[Biete] Point of View Geforce 7900 GTX faulwurf Tauschbörse 3 20.11.2006 08:54
Unterschiede zwischen Windows 2000 Server und 2003 Server porschinho Software 1 03.03.2004 16:56



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. | SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Copyright ©2008, BoardPlanet.net | Style enhanced by digital-anger.de