SSRS将执行数据集中的字段作为参数放入第二个数据集

时间:2014-07-29 14:58:15

标签: sql stored-procedures reporting-services ssrs-2008 field

我的问题是在DataSet(exec pStoredProcedure)中执行存储过程时,SSRS会填充不同的字段供我使用。我希望对其中一个字段进行额外的查询。 DataSet 1是:

exec pInfos @SessionGUID=@SessionGUID 

数据集2很简单:

select * from myTable where infoHeader is @HeaderInfo

在此查询中,@ HeaderInfo是我返回的第一个DataSet的dataField。请注意,Tablix正在扩展@HeaderInfo的数量。

将此字段作为参数并将结果放入Tablix的简单方法是什么? (注意tablix数据源是dataset1)。

2 个答案:

答案 0 :(得分:0)

特别感谢TMNT2014的评论!

我找到了两个问题的答案:

第一个是使用Lookup,我做了

    select * from myTable

然后我做了一个Lookup:

    =Lookup(Field!Headerinfo, Field!infoHeader, Field!ResultValue, "myTable")

价值就像我需要的那样。我还发现通过导航到参数并添加自己的参数,您可以指定该参数的默认值(在参数设置中),然后选择数据集 - >价值领域。虽然我没有测试过这个,但我想我已经把它包括在内了。

答案 1 :(得分:0)

我发现这很难理解,而且我需要在我的第一个数据集组中运行查找,该数据集需要多个查找字段。

首先,我浪费了大量时间参数。没有任何效果。最后,我刚刚将我需要的字段作为查找集参数添加到我的数据集查询中;

DataSet1查询:

Select a.c1, a.c2, a.c3, rtrim(ltrim(a.4))+'-'+convert(varchar(12), a.5, 101) as LookupKey from myTable a

接下来,我将相同的密钥添加到我的第二个数据集中。

DataSet2查询:

Select b.c1, rtrim(ltrim(b.2))+'-'+convert(varchar(12), b3, 101) as LookupKey from myTable b

现在我的两个数据集具有基于多个字段的等效查找键。也许使用Lookup和LookupSet有一种更简单的方法,但我没有随意看到它。

DataSets

在DataSet 1的组页脚中,我在Tablix中创建了一个表达式

=Join(LookupSet(fields!LookupKey.Value, Fields!LookupKey.Value, Fields!Comments.Value, "Comments"), vbcrlf)

Tablix view

并给出以下结果: Results