2017-03-29 3 views
0

Bit d'un débutant SQL ici. J'ai une table SQL qui stocke des données à des dates spécifiques pour un identifiant unique spécifique.Tableau pivotant pour obtenir des données à afficher comme ça?

Exemple:

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 

Je voudrais convertir en quelque sorte les données de sorte qu'il finit comme ceci:

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 

Fondamentalement extraire chaque jour et il est la valeur correspondante dans une ligne distincte. Je devine que je dois utiliser une sorte de tableau croisé dynamique pour faire ceci, mais je ne suis pas tout à fait sûr exactement comment le faire! Toute aide serait grandement appréciée!

Répondre

2

utilisant Union

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> 
+0

Merci, cela fonctionne parfaitement! –

+0

@RobertQuick Plus 1 juste être conscient de la différence entre UNION et UNION ALL –