9
votes

Comment concevoir une requête pour créer des colonnes dynamiques des rangées

J'ai des données

table1 xxx

table2 xxx

Je veux renvoyer des données au format suivant: xxx

en fonction du nombre maximal de colonnes pour ID, je souhaite créer des noms de colonne, puis convertir des lignes dans des colonnes. Est-ce que cela est possible de faire à l'aide d'une requête SQL?


2 commentaires

Utilisez Rapport Builder pour créer des rapports!


Y a-t-il une raison pour laquelle vous auriez deux colonnes par an au lieu d'avoir l'année le nom de la colonne? De cette façon, toutes vos années sont regroupées.


3 Réponses :


1
votes

Cette requête devrait aider xxx


2 commentaires

Oui mais je ne sais pas combien d'années sera là, mes colonnes peuvent s'étendre au-delà de YR4 comme YR5, YR6, YR7


Contrairement aux lignes, vous devez avoir un nombre défini de colonnes dans la clause SELECT (je ne mentionnerai pas la dynamique SQL ici). Vous pouvez ajouter plus de colonnes à cette requête, ce qui produirait toutes les valeurs nulles lorsque les années n'existent pas.




5
votes

J'ai créé une table appelée "Table2", contenant les données que vous avez présentées ci-dessus sous votre titre de table 2.

Voici le SQL I utilisé dans SQL Server 2008. P>

ID  2000    2001    2002    2003    2008    2009    2010
---------------------------------------------------------
1   NULL    NULL    NULL    NULL    Up      Down    Up
2   Up      Down    Up      Up      NULL    NULL    NULL
3   NULL    NULL    NULL    NULL    NULL    Down    Up


1 commentaires

Je n'ai pas vu Bobs réponse pendant que je travaillais sur le mien. Même chose fondamentalement. Je ne voulais pas dupliquer la réponse.