透视表以获取这样显示的数据?

时间:2017-03-29 09:19:10

标签: sql sql-server sql-server-2008-r2

这里有一个SQL新手。我有一个SQL表,用于存储特定日期的特定唯一标识符的数据。

示例:

UniqueIdentifier    someData1   Date1         SomeData2     Date2       SomeData3   Date3
1                   1000        01/01/2017    2000          01/02/2017  2000        01/03/2017
2                   2000        21/01/2017    2500          21/02/2017  3540        21/03/2017
3                   3000        05/01/2017    3000          08/07/2016  3000        12/05/2016

我想以某种方式转换数据,所以它最终会像这样:

UniqueIdentifier    Data    Date
1                   1000    01/01/2017
1                   2000    01/02/2017
1                   2000    01/03/2017
2                   2000    21/01/2017
2                   2500    21/02/2017
2                   3540    21/03/2017
3                   3000    05/01/2017
3                   3000    08/07/2016
3                   3000    12/05/2016

基本上将每个日期及其相应的值提取到一个单独的行中。我猜我需要使用某种数据透视表才能做到这一点,但我并不确定如何做到这一点!任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

使用联盟

select UniqueIdentifier, someData1 as 'Data', Date1 as 'Date' from <yourtable>   
union
select UniqueIdentifier, someData2 as 'Data', Date2 as 'Date' from <yourtable>
union
select UniqueIdentifier, someData3 as 'Data', Date3 as 'Date' from <yourtable>