Frage

Wie lassen sich Ergebnismengen aus unterschiedlichen Datenquellen in SSRS am besten kombinieren?

In meinem speziellen Beispiel muss ich einen Bericht schreiben, der Daten von SQL Server abruft und sie mit einem anderen Datensatz kombiniert, der aus einer DB2-Datenbank stammt.Am Ende muss ich diese separaten Datensätze zusammenfügen, damit ich einen kombinierten Datensatz mit Daten aus beiden Quellen habe, die in denselben Zeilen zusammengefasst sind.(Wie ein innerer Join, wenn beide Tabellen aus derselben SQL-Datenbank stammen würden).Ich weiß, dass Sie dies in SSRS 2005 nicht „out of the box“ tun können.Ich bin nicht begeistert davon, die Daten in eine temporäre Tabelle auf meiner SQL-Box ziehen zu müssen, da Benutzer diesen Bericht bei Bedarf ausführen können müssen und es so aussieht, als müssten sie SSIS verwenden, um die Daten bei Bedarf in die Tabelle zu übertragen langsam und schwer zu verwalten, da mehrere Benutzer gleichzeitig versuchen, auf den Bericht zuzugreifen.Gibt es andere, elegantere Lösungen?

Ich weiß, dass die unten erwähnte Verbindungsserverlösung technisch funktionieren würde, aber aus irgendeinem Grund erlauben uns unsere Datenbankadministratoren einfach nicht, Verbindungsserver zu verwenden.

Ich weiß, dass Sie einem Bericht zwei verschiedene Datensätze hinzufügen können, ich muss sie jedoch zusammenfügen können.Hat jemand eine Idee, wie man das am besten bewerkstelligen kann?

War es hilfreich?

Lösung

Wir mussten etwas Ähnliches tun (d. h.Inner Join 2 Datenquellen von verschiedenen Servern).Ich glaube, der beste Weg ist, eine eigene benutzerdefinierte Datenerweiterung zu schreiben.Es ist nicht sehr schwierig und würde Ihnen die Möglichkeit geben, dies und noch mehr zu tun.

Andere Tipps

Sie könnten die DB2-Datenbank als Verbindungsserver in SQL Server hinzufügen und einfach die beiden Tabellen in einer Ansicht/Sproc in SQL verbinden.Ich habe es geschafft, es ist nicht schwer und Sie erhalten Daten in Echtzeit.

Sie können einen Verbindungsserver erstellen, der direkt auf die Datenbank zugreift. Wenn Sie die Datenbank während der Geschäftszeiten nicht überlasten möchten, können Sie einen Job erstellen, um die benötigten Daten über Nacht zu kopieren.

Mit SSRS 2005 können Sie mehrere Datensätze für einen Bericht verwenden.Jeder Datensatz kann auf eine andere Datenquelle verweisen, einer kann aus einer SQL-Datenbank stammen, ein anderer kann eine ODBC-Quelle sein usw.

Gehen Sie in der Berichtsdesigneransicht in Visual Studio zur Registerkarte „Daten“ und fügen Sie neue Datenquellen hinzu, die auf Ihre verschiedenen Datenbanken verweisen.Sobald Sie fertig sind, müssen Sie beim Entwerfen des Berichts für jedes Element explizit angeben, aus welchem ​​Datensatz die Daten stammen.

Wenn das oben Genannte nicht funktioniert, können Sie verwalteten Code schreiben, siehe http://msdn.microsoft.com/en-us/msdntv/cc540036.aspx Weitere hilfreiche Informationen und Videos finden Sie hier.

Sie könnten sowohl die MSSQL-Tabellen als auch die DB2-Tabellen an eine Jet-Datenbank anhängen und Ihren Bericht an die Jet-Datenbank binden.Ich kenne die Auswirkungen der Single-Threaded-Natur von Jet nicht und weiß auch nicht, wie viel Arbeit an die unterstützenden Stores delegiert werden würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top