2016-12-15 57 views
0

背景一行與列名

我想創建一個SSRS報告,該報告將傳遞作爲參數的表上運行select *,並顯示從該表中的所有數據。據我瞭解,我無法爲此使用表格。我想使用數據透視表來實現這一點。

select * from @table將返回這樣的事情(從AdventureWorks DB)

<code>select * from person.person</code>

我想顯示這種格式的日期:

Example output format

問題

我如何做到這一點?我看着使用PIVOT/UNPIVOT,但我看到的所有示例都使用靜態列名稱和聚合。我會在設計時(或運行時)不知道列名,我假設我需要列表頭,如'表名','值1','值2'等?

限制

我不會有機會來創建存儲過程。理想情況下,報告應該能夠完全從SSRS運行,而無需創建新表格等。

性能不是問題。

編輯

編輯添加一些清晰度。上例中的列名僅僅是一個例子。 @table參數可以是任何表,在設計時不會知道列名。列名可能是COL1,COL2,或名稱,地址...等

+0

有趣的問題(或三個)。我可以給你一個解決方案的樞軸/ unpivot位,但不是動態數據集創建。如果你想提出另一個問題只是在樞軸unpivot位,我會發布我的解決方案。 –

+0

就像在Adventureworks person表上的註釋一樣,數據集結果非常快,但報表渲染需要一個年齡(但最終會產生所有業務實體)。 –

回答

0

您可以在BusinessEntityID

  • 與正常的表矩陣做到這一點,與列組創建一個正常的表矩陣。
  • 刪除的行組(只)
  • 插入一個新的父列組,由BusinessEntityID
  • 分組刪除第一行(行只)
  • 各行標題添加的,按你的建議的輸出
  • 添加每個值在第二列

Like this

+0

我不認爲這會起作用。我的問題中的列名僅僅作爲一個例子,它們可以是任何表,任何表。我會更新這個問題以使其更清楚。 – Jay