2016-04-29 7 views
0

Ich habe eine Tabelle, die meine Daten wie folgt speichert:Wie wird der Zeilenwert mit der Spalte?

 
ID Name Value 
1 Tag1 20 
2 Tag2 30 
3 Tag3 40 

möchte ich für jeden Tag wie folgt die Werte angezeigt werden:

 
ID Tag1 Tag2 Tag3 
1 20 30 40 

ich diese Spalte für eine versuchte:

SELECT   
    ID 
    ,Value AS Tag1 
FROM 
    dbo.TableLogger 
WHERE 
    (Name = 'Tag1') 

Wie könnte ich für den Rest der Spalten tun?

+0

PIVOT !!!!!!! http://24.media.tumblr.com/6b6265de049e4b4b918ec66572b2d40f/tumblr_mh5fmkj58S1rycrkjo1_500.gif –

+0

Könnten Sie mir bitte einen Hinweis geben, wie könnte ich das tun? Vielen Dank! – magn

+0

siehe unten für die Antwort –

Antwort

0
SELECT ID, 
[Tag1], [Tag2], [Tag3] 
FROM 
(SELECT ID, Value,Name 
    FROM TableLogger) AS SourceTable 
PIVOT 
(
MAX(Value) 
FOR Name IN ([Tag1], [Tag2], [Tag3]) 
) AS PivotTable; 
+0

Gibt es eine Möglichkeit, alle Werte anzuzeigen? Nicht nur der Höchstwert. – magn

+0

Können Sie mehrere Tag1s gegen eine ID haben? –

+0

Nein. Sie haben Recht. Ich bin ein bisschen verwirrt. Es klappt. Danke vielmals! – magn

Verwandte Themen