SQL server PivotTabelle für Mehrere Spalten
Ich versuche PivotTabelle für mehrere Spalten. Ich bin mit SQL server 2008. Hier ist, was ich bisher versucht habe
CREATE TABLE #t ( id int, Rscd varchar(10),Accd varchar(10),position int)
INSERT INTO #t Values (10,'A','B',1)
INSERT INTO #t Values (10,'C','D',2)
Select id,[1],[2],[11],[12] FROM
(SELECT id, Rscd,Accd, position , position +10 as Aposition
From #t)
As query
PIVOT (MAX(Rscd )
FOR Position IN ([1],[2])) AS Pivot1
PIVOT (MAX(Accd )
FOR Aposition IN ([11],[12])) AS Pivot2
Die unten angegeben ist das Ergebnis, dass ich immer
id 1 2 11 12
10 NULL C NULL D
10 A NULL B NULL
Aber das Ergebnis, das ich erreichen will ist ,
id 1 2 11 12
10 A C B D
Hilfe ? was ist falsch in meinem code.
- mögliche Duplikate von Mehrere Pivot-Spalte in T-SQL
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde unpivot die Spalten, in Paaren erste, dann die pivot Sie. Grundsätzlich ist der unpivot-Prozess konvertiert die Paare von Spalten (
rscd
,position
undaccd
,aposition
) in die Zeilen, dann kann man das pivot. Der code:Sehen SQL Fiddle mit Demo
Dont Verwenden Sie die Spalte "ID". Verwenden Sie eine abgeleitete Tabelle, um alle Spalten mit Ausnahme der ID und verwenden Sie dann die PIVOT-Tabelle.