J'ai des données
table1 p> table2 p> Je veux renvoyer des données au format suivant: p> 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? P> p>
3 Réponses :
Cette requête devrait aider
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.
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
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.
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.