2008-08-29 4 views
8

Quelle est la meilleure façon de combiner des ensembles de résultats provenant de sources de données disparates dans SSRS?Comment combinez-vous plusieurs ensembles de résultats dans SSRS?

Dans mon exemple particulier, j'ai besoin d'écrire un rapport qui extrait des données de SQL Server et les combine avec un autre ensemble de données provenant d'une base de données DB2. En fin de compte, je dois rassembler ces ensembles de données distincts de sorte que j'ai un ensemble de données combinées avec les données des deux sources combinées sur les mêmes lignes. (Comme une jointure interne si les deux tables provenaient de la même base de données SQL). Je sais que vous ne pouvez pas faire ce "out of the box" dans SSRS 2005. Je ne suis pas excité d'avoir à tirer les données dans une table temporaire sur mon SQL, car les utilisateurs doivent être en mesure d'exécuter ce rapport sur demande et il semble que l'utilisation de SSIS pour obtenir les données dans la table à la demande sera lente et difficile à gérer avec plusieurs utilisateurs essayant d'obtenir le rapport simultanément. Y a-t-il d'autres solutions plus élégantes?

Je sais que la solution de serveur lié mentionnée ci-dessous fonctionnerait techniquement, cependant, pour une raison quelconque, nos administrateurs de bases de données ne nous permettront tout simplement pas d'utiliser des serveurs liés.

Je sais que vous pouvez ajouter deux ensembles de données différents à un rapport, mais je dois pouvoir les joindre ensemble. Quelqu'un at-il des idées sur la meilleure façon d'y parvenir? SSR 2005 vous permet d'avoir plusieurs ensembles de données pour un rapport.

Répondre

5

Nous avons dû faire quelque chose de similaire (c'est-à-dire des sources de données de jointure interne 2 provenant de différents serveurs). Je crois que le meilleur moyen est d'écrire votre propre extension de données personnalisée. Ce n'est pas très difficile et cela vous donnerait la capacité de faire ceci et plus.

+2

Des suggestions sur la façon de commencer avec une extension de données personnalisée? –

+1

J'ai parcouru cet article de CodeProject qui décrit comment créer une extension de traitement de données multi-sources SSRS: http://www.codeproject.com/KB/reporting-services/SSRSMultiDataSourceDPE.aspx –

1

Chaque dataset peut faire référence à une source de données différente, une peut provenir d'une base de données SQL, une autre peut être une source ODBC, etc.

Dans la vue Concepteur de rapports de Visual Studio, accédez à l'onglet "Données" et ajoutez de nouvelles sources de données pointant vers. vos différentes bases de données. Une fois que vous avez terminé, lors de la conception du rapport pour chaque élément, vous devez spécifier explicitement de quel ensemble de données proviennent les données.

Si ce qui précède ne fonctionne pas, vous pouvez écrire du code managé, référez-vous à http://msdn.microsoft.com/en-us/msdntv/cc540036.aspx pour plus d'informations et de vidéos utiles.

+0

Il est vrai que vous pouvez avoir plusieurs ensembles de données dans SSRS, mais la question était de regrouper ces ensembles de données en un dans le rapport. –

3

Vous pouvez ajouter la base de données DB2 en tant que serveur lié sur le serveur SQL et simplement joindre les deux tables dans une vue/sproc en SQL. Je l'ai fait, ce n'est pas dur et vous obtiendrez des données en temps réel.

0

Vous pouvez associer à la fois les tables MSSQL et les tables DB2 à une base de données Jet et lier votre rapport à la base de données Jet. Je ne connais pas les implications de la nature à simple thread de Jet, ni combien de travail serait délégué aux backing stores.

2

Vous pouvez créer un serveur lié qui accéderait directement à la base de données ou si vous ne souhaitiez pas soumettre la base de données à des contraintes pendant les heures d'ouverture, vous pourriez créer un travail pour copier les données dont vous avez besoin du jour au lendemain.

Questions connexes