2008-08-29 37 views
8

結合SSRS中不同數據源的結果集的最佳方式是什麼?如何在SSRS中結合多個結果集?

在我具體的例子,我需要編寫從SQL Server中提取數據,並與另一組數據來自一個DB2數據庫結合它的報告。最後,我需要將這些單獨的數據集合在一起,以便我將一個組合數據集與來自兩個數據源的數據組合到同一行中。 (如果兩個表來自同一個SQL DB,就像內連接一樣)。我知道你不能在SSRS 2005中「開箱即用」。我並不興奮,因爲用戶需要能夠根據需要運行此報告,因此不得不將數據提取到我的SQL框中的臨時表中而且似乎不得不使用SSIS將數據按需提供到表格中,這將會很慢並且難以管理,因爲多個用戶試圖同時查看報告。那裏有其他更優雅的解決方案嗎?

我知道下面提到的鏈接服務器的解決方案在技術上的工作,但是,由於某種原因,我們的數據庫管理員根本不會允許我們使用鏈接的服務器。

我知道,你可以添加兩個不同的數據集的報告,不過,我需要能夠加入他們在一起。任何人有關於如何最好地完成這個任何想法?

回答

5

我們必須做類似的事情(即來自不同服務器的內部連接2數據源)。我相信最好的方法是編寫自己的自定義數據擴展。這不是很困難,它會讓你有能力做到這一點和更多。

+2

關於如何開始使用自定義數據擴展的任何建議? – 2008-10-16 22:47:19

1

SSRS 2005允許您爲報表創建多個數據集。每個數據集可以引用不同的數據源,一個可以來自SQL DB,另一個可以是ODBC源等。

在Visual Studio中的報表設計器視圖中,轉至「數據」選項卡並添加指向你的不同數據庫。一旦完成,爲每個元素設計報告時,必須明確指定數據來自哪個數據集。

如果以上不工作,你可以編寫託管代碼,請參閱http://msdn.microsoft.com/en-us/msdntv/cc540036.aspx更多有用的信息和視頻。

+0

的確,您可以在SSRS中擁有多個數據集,但問題是如何將這些數據集合到報告中。 – 2013-02-04 19:22:08

3

您可以添加DB2數據庫爲SQL Server中的鏈接服務器和剛剛加入在SQL視圖/存儲過程的兩個表。我已經做到了,這並不難,你會實時獲得數據。

0

您可以將MSSQL表和DB2表連接到Jet數據庫,並將報表綁定到Jet數據庫。我不知道Jet的單線程本質的影響,或者將有多少工作委託給支持存儲。

2

您可以創建一個能夠直接訪問數據庫鏈接的服務器,或者如果你不想在緊張工作時間的數據庫,你可以創建一個作業來複制你需要隔夜數據。