2014-01-15 28 views
0

我有一個醜陋的數據庫結構 - 表被命名爲會計年度,如GL_2011GL_2012表名作爲報表生成器參數

我需要讓用戶告訴我哪個財年他們想從中獲取數據,然後構造表名,然後執行查詢。

我已經成功建立了一個字符串分配到@SQL_QUERYEXEC uting它..但MS報表生成器似乎迷失在過程中,並經常不會填充我的字段在數據集中。其他時候,我試圖將查詢拼湊在一起,發現錯誤的錯誤。

簡單的例子:

DECLARE @SQL_QUERY VARCHAR(MAX); 

SET @SQL_QUERY = 'SELECT ITEM_1, ITEM_2 FROM ' + 'GL_' + CAST(@FISCAL_YEAR_PARM AS VARCHAR(4)); 

EXEC(@SQL_QUERY) 
+0

如果您必須使用dsql添加PRINT @SQL_QUERY行在SSMS中進行調試時會有幫助。 – ShellNinja

+0

你考慮過一個視圖而不是動態SQL嗎?另外,你能舉出一個錯誤的例子嗎? – user3056839

+0

本身沒有錯誤 - Report Builder允許我運行它(電子表格窗口中的結果是正確的),但是當我單擊確定時,我看到數據集沒有來自查詢的字段。點擊'刷新字段'不起作用。至於觀點 - 他們在這裏不鼓勵。 – user3199309

回答

0

這裏有一個建議。爲了讓SSRS識別查詢返回的列,請開發一個存儲過程來填充臨時表並返回臨時表的行。通過會計年度來確定要查詢哪個數據庫(或者像您一樣動態地執行)來填充臨時表。如果你這樣做了,那麼SSRS知道每次調用都會返回的列,並且會使這些列在Builder中可用。

相關問題