繁体   English   中英

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

[英]SSRS Putting field from executed Dataset as Parameter to Second Dataset

我的问题是在DataSet(exec pStoredProcedure)中执行存储过程时,SSRS会填充不同的字段供我使用。 我希望对这些字段之一进行其他查询。 数据集1为:

exec pInfos @SessionGUID=@SessionGUID 

数据集2很简单:

select * from myTable where infoHeader is @HeaderInfo

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

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

特别感谢TMNT2014的评论!

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

首先是使用Lookup,

    select * from myTable

然后,我进行了如下查找:

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

价值就是我需要的。 我还发现,通过导航到参数并添加自己的参数,可以指定该参数的默认值(在参数设置中),然后选择“数据集->值字段”。 尽管我没有测试它,但我认为我应该包括它。

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

首先,我浪费了大量的参数时间。 没事。 最后,我只是将需要的字段作为lookupset parms添加到了数据集查询中。

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也许有一种更简单的方法,但是我并没有看到它。

数据集

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

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

Tablix视图

并给出以下结果: 结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM