从参数中获取先前的第一个值
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 的列中找到该值”
我有一个来自数据集日期的参数日期: 数据样本
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 的列中找到该值”