schlemiel29 10 Geschrieben 21. Mai 2012 Melden Geschrieben 21. Mai 2012 Hallo, ich habe eine Aufgabenstellung in SQL-Server 2008, die ich nicht gelöst bekomme. Ich habe eine Tabelle mit ganz vielen Wertespalten für die Monatswerte aller Perioden. Zu den 12 Monaten kommen auch noch 5 Jahre, so dass ich 60 Wertespalten habe. Die haben die schönen Feldnamen 01-2005, 02-2005, ... Nun brauche ich die aber schön normalisiert (?), d.h. ein Wert je Zeile. Ich bräuchte also in der Abfrage eine zusätzliche Spalte, die den Wert "01-2005" o.ä. führt und dann erst den eigentlichen Wert. Nun möchte ich nicht 60 einzelne Abfragen bauen, die dann in eine Tabelle die Daten anfügen, sondern alles in einer Query erschlagen. Geht so etwas? Wenn ja, wie? Vielen Dank im Voraus Dirk
FischiFisch 10 Geschrieben 20. Juni 2012 Melden Geschrieben 20. Juni 2012 Man kann Daten "unpivotieren" - hier ein Beispiel was m.E. helfen sollte - ggf. ein wenig damit experimentieren. INSERT INTO tabelle_unpivotiert SELECT NUMMER, NAME, INHALT FROM (SELECT Kundennummer AS NUMMER, 01-2005 AS 01-2005, 02-2005 AS 02-2005, 03-2005 AS 03-2005, 04-2005 AS 04-2005, ... FROM tabelle_pivotiert WHERE ... ) NAME UNPIVOT (NAME FOR INHALT IN (01-2005, 02-2005, 03-2005, 04-2005, ...) )AS UNPIVOTIERT;
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden