Voici ce que j'ai compris des exigences. Sélectionnez une liste d'éléments dans une table et faites-en un rapport dans un tableau horizontal. Les valeurs de la table peuvent être connues ou non.
Dans mon exemple, je construis une chaîne unique à partir d'un select produisant une chaîne contiguë horizontale à partir d'une liste d'éléments dans une variable.
Ensuite, je construis une instruction SQL dynamique en utilisant la nouvelle variable et en incluant une sélection de ma table désirée. Dans le SQL dynamique, je fais un simple remplacement pour que le PIVOT soit correctement formaté. Cela résout le problème de ne pas savoir quelles données existent dans la table avant la main. Pivot vous oblige à étiqueter vos colonnes en utilisant les valeurs de champ dans lequel peut être un défi si les valeurs dans la table sont inconnues ou changent constamment.
DECLARE @FieldValueString VARCHAR(MAX)
SELECT @FieldValueString = Coalesce(@FieldValueString + ',', '') + cast(ssctab as varchar) from RA_sysScreen
PRINT @FieldValueString
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * FROM
(SELECT ssctab FROM [RA_sysScreen])qry
PIVOT (MAX(ssctab) FOR ssctab in (['+REPLACE(@FieldValueString,',','],[')+'])) as pvt'
print @sql
EXEC(@sql)
Espérons que cela aide. J'ai hâte de voir d'autres réponses sur celui-ci
Voir ma réponse dans cette question en double [Rapport SSRS formatant un tableau pour afficher les données côte à côte] (http://stackoverflow.com/questions/13721709/ssrs-report- formatage-a-table-a-display-data-side-by-side) –