我想创建一份SSRS报告。我有5张桌子,我希望他们都留在一个页面中,除非年份有所变化,如下所示:
page1: year 2014
table1
table2
table3
table4
table4
page2: year 2015 (the same tables as page 1, but with data for year 2)
table1
table2
table3
table4
table5
我该怎么做?
答案 0 :(得分:0)
一种(相当丑陋)的方法是使用在Year上过滤的列表。不幸的是,这确实意味着您需要在单个数据集中返回所有数据。
我之前做过的是创建一个表变量来返回@ReturnData
中的所有数据。这包含您希望返回的每个表的每个字段,以及tableID
标识符。
然后我将所有表插入到此@ReturnData表中,并为当前插入语句设置TableID,例如
INSERT INTO @ReturnData(tableID, col01, col02, col03)
SELECT
1 AS tableID,
a.col1 as col01,
a.col2 as col02,
a.col3 as col03,
...
FROM myTableA a
然后是第二个表
INSERT INTO @ReturnData(tableID, col11, col12, col13)
SELECT
2 AS tableID,
b.col1 as col11,
b.col2 as col12,
b.col3 as col13,
FROM myTableB b
然后,在Reporting Services中,您可以根据组合在一起的返回数据集创建列表。此列表可以按年分组,每个表都可以在tableID
列上进行过滤。
请注意,如果表之间存在公共列,则没有理由不将数据放入两个表的单个列中,因为每行都有自己的tableID标识符。