reporting-services - 从参数中获取先前的第一个值
问题描述
我有一个来自数据集日期的参数日期:数据样本
钥匙 | 月 | 年 | 行号 |
---|---|---|---|
20210131 | 一月 | 2021 | 3 |
20201231 | 十二月 | 2020 | 2 |
20201130 | 十一月 | 2020 | 1 |
我需要做一个返回所选值的前一个表达式,例如当用户选择 2021 年 1 月(日期参数)时,它将在文本框中的表达式中返回 2020 年 12 月。
我尝试previous(first(fields! Month_year. Value, "group name"))
了,但它返回错误,有什么办法可以解决它?
解决方案
我建议您扩展数据集查询以包含针对每一行的先前值。
假设您调用了数据集查询DataSet1
并使用了一个名为“myTable”的表,然后是这样的(我将示例列名从 Key 更改为 KeyID 以避免关键字问题)。
SELECT *
, LAG(KeyID) OVER(ORDER BY RowNum) as PreviousMonthKeyID
FROM myTable
注意:这假定行号始终处于正确的顺序,如果不是,那么您可以将其更改为按 KeyID 排序。
然后,您可以使用 aLOOKUP()
来查找正确的值,因此如果调用了您的参数selectedDate
并且它的值设置为 KeyID 列,请使用类似
=LOOKUP(Parameters!selectDate.Value, Fields!KeyID.Value, Fields!PreviousMonthKey.Value, "DataSet1")
这读取“获取 selectdDate 中的值,在名为 DataSet1 的数据集中的 KeyID 列中找到此值,并返回在名为 PreviousMonthKeyID 的列中找到的值”
推荐阅读
- r - 将多个长到宽的转换合并为一个
- reactjs - React 上的 onScroll 与 addEventListener
- java - 在 Java Mustache 中为模板添加格式化功能
- reactjs - Formik、Material UI Autocomplete 和 Firestore - 在哪里查询以查找数组参数
- python - 为什么我在 localhost:5000 中看不到我的容器化 docker flask 应用程序?
- ruby - 如何将已制成散列字符串的内容变成散列?
- python - 如何编写一个函数来平均数据帧列中每个数组中的每个第 n 个数字?
- php - 如何根据外部数组值优先级对多维PHP数组进行排序
- javascript - 在 Javascript 中使用 XPATH 从 WebElement 中检索值
- excel - 如何根据第一行和第一列中的值对一系列矩阵求和 - Excel VBA