我正在尝试找出向SSRS报告添加多个字段的最佳方法。 报告中有一些绘图和tablix,它们是从查询中填充的,但现在我被要求添加一个包含~20个值的表。问题是我需要将它们放在特定的顺序/布局中(我无法通过排序获得),并且它们可能需要在上面添加一个描述,它将是静态文本(而不是来自数据库)。
我想避免这样的情况:我保留20个相同查询的副本,返回单个单元格,唯一的区别在于:
WHERE myTable.partID = xxxx
我有可能保留一个单一的查询,它接受一个参数,我可以通过表达式或任何其他方式指定某个参数吗?
不是经典的SSRS参数,因为我需要为每个单元格使用不同的参数...
或者我是否需要创建20个查询来获取所有这些单个值,然后将它们作为单独的文本字段放在报告上?
答案 0 :(得分:0)
当我在过去完成此操作时,我会构建一个查询,通过某种键获取所需的所有数据。
例如,我可能有一个标题和值列表,每行一个,我需要显示为报告页面的一部分。数据集查询可能看起来像......
DECLARE @t TABLE(Key varchar(20), Amount float, Caption varchar(100))
INSERT INTO @t
SELECT 'TotalSales', SUM(Amount), NULL AS Amount FROM myTable WHERE CountryID = @CountryID
UNION
SELECT 'Currency', NULL, CurrencyCode FROM myCurrencyTable WHERE CountryID = @CountryID
UNION
SELECT 'Population', Population, NULL FROM myPopualtionTable WHERE CountryID = @CountryID
SELECT * FROM @t
结果数据集看起来像这样。
Key Amount Caption
'TotalSales' 12345 NULL
'Currency' NULL 'GBP'
'Population' 62.3 NULL
让我们称这个数据集为dsStuff
,然后在每个单元格/文本框中xpression就像是。
=LOOKUP("Population", Fields!Key.Value, Fields!Amount.Value, "dsStuff")
或
=LOOKUP("Currency", Fields!Key.Value, Fields!Caption.Value, "dsStuff")