schlemiel29 10 Geschrieben 21. Mai 2012 Melden Teilen 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 Zitieren Link zu diesem Kommentar
FischiFisch 10 Geschrieben 20. Juni 2012 Melden Teilen 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; Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.