2013-04-13 2 views
2

Мне интересно, как превратить столбец, содержащий повторяющиеся значения столбцов в строки в MSSQL. Вот пример того, с чем я работаю.Повторение значения столбца в строке в SQL

CREATE TABLE Colors 
(
    Time_ Time, 
    Color varchar(6), 
    count int 
) 

INSERT INTO Colors VALUES ('10:00', 'Red', 2); 
INSERT INTO Colors VALUES ('10:00', 'Orange', 3); 
INSERT INTO Colors VALUES ('10:00', 'Yellow', 6); 
INSERT INTO Colors VALUES ('10:00', 'Green', 9); 
INSERT INTO Colors VALUES ('10:00', 'Blue', 2); 
INSERT INTO Colors VALUES ('11:00', 'Red', 3); 
INSERT INTO Colors VALUES ('11:00', 'Orange', 4); 
INSERT INTO Colors VALUES ('11:00', 'Yellow', 6); 
INSERT INTO Colors VALUES ('11:00', 'Green', 7); 
INSERT INTO Colors VALUES ('11:00', 'Blue', 1); 
INSERT INTO Colors VALUES ('12:00', 'Red', 2); 
INSERT INTO Colors VALUES ('12:00', 'Orange', 2); 
INSERT INTO Colors VALUES ('12:00', 'Yellow', 7); 
INSERT INTO Colors VALUES ('12:00', 'Green', 9); 
INSERT INTO Colors VALUES ('12:00', 'Blue', 4); 

И SQLFiddle: http://sqlfiddle.com/#!3/48657/1

Что я ищу это таблица, в которой строки являются Time_, красный, оранжевый, желтый, зеленый, синий. Так это будет выглядеть примерно так:

Любая помощь будет оценена.

ответ

3
SELECT Time_, 
     Red, 
     Orange, 
     Yellow, 
     Green, 
     Blue 
FROM 
    (
     SELECT Time_, Color, Count 
     FROM Colors 
    ) orgData 
    PIVOT 
    (
     MAX(Count) 
     FOR Color IN (Red, Orange, Yellow, Green, Blue) 
    ) pvt 
+0

Спасибо за вашу помощь! – StoneRanger

+0

приветствуется ': D' –

Смежные вопросы