2010-07-19 11 views
0

Je retourne un ensemble de données SQL dans SSRS (Microsoft SQL Server Reporting Services) avec une relation un à plusieurs comme ceci:D'un jeu de données SQL un à plusieurs Puis-je renvoyer une liste délimitée par des virgules dans SSRS?

ID REV événement

6117 B FTG-06a
6117 B FTG-06a VPM
6117 B GTI-04b
6124 A GBI-40
6124 A GTI-04b
6124 A GTD-04c
6136 M GBI-40
6141 C GBI-40

Je voudrais l'afficher comme un champ délimité par des virgules dans la dernière colonne [Event] comme ceci:

ID REV événement
6117 B FTG-06a, VPM FTG-06a, GTI-04b
6124 un GBI-40, GTI-04b, 04c GTD-
6136 M GBI-40
6141 C GBI-40

Est-il possible de le faire sur le côté SSRS des choses?

Répondre

0

Vous souhaitez concatter côté SQL et non SSRS, vous pouvez ainsi combiner ces résultats dans une procédure stockée, puis l'envoyer à la couche de génération de rapports. Rappelez-vous les bases de données sont là pour travailler avec les données.

Le rapport doit simplement être utilisé pour la couche de présentation, il n'est donc pas nécessaire de vous fatiguer d'essayer d'obtenir une fonction pour analyser ces données.

La meilleure chose à faire est de le faire au niveau sproc et de pousser les données du sproc dans le rapport.

En fonction de votre édition Voici comment vous le feriez:

Pour concat champs jeter un oeil à COALESCE. Vous obtiendrez alors une concaténation de toutes les valeurs que vous avez listées. Voici un exemple:

use Northwind 

declare @CategoryList varchar(1000) 
select @CategoryList = coalesce(@CategoryList + ‘, ‘, ”) + CategoryName from Categories 

select ‘Results = ‘ + @CategoryList 

maintenant parce que vous avez un champ supplémentaire à savoir la valeur d'identité, vous ne pouvez pas ajouter des valeurs à la requête, vous devez utiliser un curseur avec ce sinon vous obtiendrez une erreur notoire à propos de l'ajout de champs supplémentaires à une requête calculée.

Jetez un oeil here pour plus d'aide, assurez-vous de regarder le commentaire en bas spécifiquement posté par un 'Alberto' il a un problème similaire à ce que vous faites et vous devriez être capable de le comprendre en utilisant son commentaire.

+0

Puis, si j'ai l'instruction select du premier ensemble de données, comment bourrer la dernière colonne (EV_NAME) et former un ensemble d'événements séparés par des virgules et classés par un ID distinct ?: Select ID, REV, (Événement ???) as Event_List De tblAllEvents Classer par ID –

+0

@ James Polhemus - voir mon edit. – JonH

+0

J'ai compris, merci Jon. Merci. Je n'avais pas essayé de réarranger quoi que ce soit sur le dBase mais le DBA m'a donné libre cours sur les vues et les sprocs. Je me suis installé avec une vue propre du côté SQL, puis j'ai fait un appel Stuff/Group avec un chemin XML du côté SSRS et j'ai filtré le XML non désiré ... –