我有一个问题,这看起来更好的方式在SQLfiddle: http://www.sqlfiddle.com/#!3/dffa1/2SQL Pivoting或转置或...行到列?
我有一个表multirows与邮戳和测试结果每一个用户,我想调换或者转动成一行结果如下,其中每个用户列出了所有的时间和价值的结果:
USERID PSA1_time PSA1_result PSA2_time PSA2_result PSA3_time PSA3_result ...
1 1999-.... 2 1998... 4 1999... 6
3 1992... 4 1994 6
4 2006 ... 8
见下表:
CREATE TABLE yourtable
([userid] int, [Ranking] int,[test] varchar(3), [Date] datetime, [result] int)
;
INSERT INTO yourtable
([userid], [Ranking],[test], [Date], [result])
VALUES
('1', '1', 'PSA', 1997-05-20, 2),
('1', '2','PSA', 1998-05-07, 4),
('1', '3','PSA', 1999-06-08, 6),
('1', '4','PSA', 2001-06-08, 8),
('1', '5','PSA', 2004-06-08, 0),
('3', '1','PSA', 1992-05-07, 4),
('3', '2','PSA', 1994-06-08, 6),
('4', '1','PSA', 2006-06-08, 8)
;
我不明白你想要的结果,你能澄清一下你有兴趣看到什么吗?即'1 1999 -... 2'这些值不会同时出现在您的示例数据中。 –
我想用户1已将所有信息列在一行中。因为它是多行中每个测试结果与datestamp。即用户1 - 具有不同日期和时间的四个结果。我希望用户1将所有信息放在一行中:用户1,test1,timeOftest1,resultOftest1,timeOftest2,resultOftest2 ...。现在用户不总是有相同数量的结果。这是否更有意义?并感谢Formating。 – user2696868