Question

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

Dans mon exemple particulier, je dois rédiger un rapport qui extrait les 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 joindre ces ensembles de données distincts afin d'avoir un ensemble de données combiné 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 cela "prêt à l'emploi" dans SSRS 2005.Je ne suis pas enthousiaste à l'idée de devoir extraire les données dans une table temporaire sur ma machine SQL, car les utilisateurs doivent pouvoir exécuter ce rapport à la demande et il semble que devoir utiliser SSIS pour obtenir les données dans la table à la demande sera lent et difficile à gérer avec plusieurs utilisateurs essayant d'accéder au rapport simultanément.Existe-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 base 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 réunir.Quelqu'un a-t-il des idées sur la meilleure façon d'y parvenir ?

Était-ce utile?

La solution

Nous avons dû faire quelque chose de similaire (c.-à-d.jointure interne de 2 sources de données provenant de serveurs différents).Je pense 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 possibilité de faire cela et bien plus encore.

Autres conseils

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

Vous pouvez créer un serveur lié qui accéderait directement à la base de données ou si vous ne souhaitez pas surcharger la base de données pendant les heures de bureau, vous pouvez créer une tâche pour copier les données dont vous avez besoin pendant la nuit.

SSRS 2005 vous permet d'avoir plusieurs ensembles de données pour un rapport.Chaque ensemble de données peut faire référence à une source de données différente, l'une peut provenir d'une base de données SQL, l'autre peut être une source ODBC, etc.

Dans la vue du concepteur de rapports dans 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é, reportez-vous à http://msdn.microsoft.com/en-us/msdntv/cc540036.aspx pour des informations et des vidéos plus utiles.

Vous pouvez attacher les tables MSSQL et 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 monothread de Jet, ni la quantité de travail qui serait déléguée aux magasins de support.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top