从参数中获取先前的第一个值

Get previous first value from parameter

我有一个来自数据集日期的参数日期: 数据样本

Key Month Year Row num
20210131 January 2021 3
20201231 December 2020 2
20201130 November 2020 1

我需要做一个 return 所选值的前一个表达式,例如当用户选择 2021 年 1 月(日期参数)时,它将在文本框中的表达式中 return 2020 年 12 月。

我尝试 previous(first(fields! Month_year. Value, "group name")) 但是 return 出错了,有什么办法可以解决吗?

我建议您扩展数据集查询以包括针对每一行的先前值。

假设您的数据集查询被称为 DataSet1 并使用一个 table 被称为 'myTable' 然后是这样的(我将示例列名称从 Key 更改为 KeyID 以避免关键字问题) .

    SELECT *
        , LAG(KeyID) OVER(ORDER BY RowNum) as PreviousMonthKeyID
        FROM myTable

注意:这假定行号始终按正确的顺序排列,否则您可以将其更改为按 KeyID 排序。

然后您可以使用 LOOKUP() 找到正确的值,因此如果您的参数被称为 selectedDate 并且它的值设置为 KeyID 列,请使用类似

=LOOKUP(Parameters!selectDate.Value, Fields!KeyID.Value, Fields!PreviousMonthKey.Value, "DataSet1")

这表示“获取 selectdDate 中的值,在名为 DataSet1 的数据集的 KeyID 列中找到该值,并且 return 在名为 PreviousMonthKeyID 的列中找到该值”