Ich möchte eine SQL-Tabelle um mehrere Spalten aufheben. Ich habe eine normale UNPIVOT-Anweisung ausprobiert, die sich jedoch nur um einen Wert dreht. Siehe diesen Link zum Beispiel: https://codingsight.com/understanding-pivot-unpivot-and-reverse-pivot-statements .
Ich habe versucht, meine Daten sowie mein gewünschtes Ergebnis im Bild unten zu veranschaulichen. Die obere Tabelle ist ein Beispiel für die Daten in der SQL-Tabelle. Ich habe 3 Materialien verwendet, aber in Wirklichkeit gibt es 20.
Die untere Tabelle ist mein gewünschtes Ergebnis.
Die Daten befinden sich auf einem SQL 2008-r2-Server.
Irgendwelche Hinweise, wie man diese Aufgabe erledigt?
Erwägen Sie die Verwendung cross apply
wie folgt:
select t.date, t.product, x.*
from mytable t
cross apply (values
(container1material, container1amount),
(container2material, container2amount),
(container3material, container3amount)
) x(material, amount)
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen