如何将从一个数据集返回的值作为参数传递给第二个数据集,以从单元格表达式中的第二个数据集返回值?

时间:2014-03-13 00:10:20

标签: reporting-services bids

如何将从一个数据集返回的两个动态值作为参数传递给另一个数据集,以返回单元格中第二个数据集的一行?

对于标题行中的每个单元格,我需要确定A)根据用餐时间得到哪一列,然后B)获取该值并将其传递给查询以获取其中一列(I&从查询开始#39; ll先取得。

我已经在使用级联参数,但我不确定在这种情况下是否或如何使用它们。

示例:

@SalesReceipt
@MealPeriod (A cascaded parameter. There should be one meal period per receipt)

示例单元格中的表达式:

=IIF(Parameters!@MealPeriod.value = "Lunch", Fields!Burger_Lunch_Type.value, Fields!Burger_Dinner_Type.value)

根据用餐时间,从事实表中返回午餐或晚餐类型。

鉴于Type和Item ID,我需要从另一个查询或数据集中获取值,并将该文本添加到单元格表达式中。所以表达式看起来像:

=IIF(Parameters!@MealPeriod.value = "Lunch", Fields!Burger_Lunch_Type.value, Fields!Burger_Dinner_Type.value) & " and " & (select top row from dataset given the correct type field and Item ID)

细胞应该如下:Table1.Type和Table2.Breadtype AKA培根汉堡和全麦。

这有意义吗?

1 个答案:

答案 0 :(得分:0)

我会使用可怕的Lookup函数:

http://technet.microsoft.com/en-us/library/ee210531.aspx

我说可怕,因为编码和调试是非常棘手的。我甚至看到一个失败的Lookup导致整行消失的情况!

Lookup目标数据集本身不应使用Lookup所需的参数 - 它的目的是返回Lookup函数所需的所有可能行。

如果您需要使用两列作为查找的键,您可以将它们连接起来,例如

Fields!Burger_Lunch_Type.value & "|" & Fields!ItemID.value

祝你好运!