SSRS 表达式:First(Value) 但前提是 Value2 = X
SSRS Expression: First(Value) but only if Value2 = X
抱歉,不确定我的标题有多大意义。
基本上...我有一个报告和数据集(名为 DataSet1)returns 数据有点像这样。
Quarter MonthID Month Value1 Value2 QtrAvgValue1 QtrAvgValue2
Q-1 1 Mar 2017 12 28% 12.3 24.0%
Q-1 2 Feb 2017 15 12% 12.3 24.0%
Q-1 3 Jan 2017 10 32% 12.3 24.0%
Q-2 4 Dec 2016 18 25% 17.3 24.3%
Q-2 5 Nov 2016 14 18% 17.3 24.3%
Q-2 6 Oct 2016 20 30% 17.3 24.3%
最后两列只是该行整个季度的平均值。 [Quarter] 列读作 -1 表示上一季度,-2 表示上一季度。 MonthID 列只是一个自动增量,它会随着过去每个月的增加而增加。所以最近的一个月是 1,下一个月是 2。
我需要一个能让我说出这样的话的表达方式:
当季度 = Q-1 时 return QtrAvgValue1; return 12.3;
我还需要一个表达式,可以说:
当 MonthID = 1 时 return 值 1; return 12;
这可能吗?我不愿意将我的数据集转换成一堆列名荒谬的列
注意:我曾尝试将 IIF 与 SUM/AVG 一起使用,它使用数值作为一种 hack...但我想不出一种方法来处理字符串值。
更新: 我想通了,使用 SSRS 中的 Lookup 和 LookupSet 函数,这是我以前从未使用过的。
示例:
=LookupSet("Q-1", Fields!Quarter.Value, Fields!QtrAvgValue1.Value, "DataSet1")(0)
LookupSet 通常用于一对多关系,但它仍然适用于一对一关系。
这个表达式基本上是说要查找具有 "Q-1" 季度和 return 列 [QtrAvgValue1].
的所有行
Lookup set函数将数据放入一个数组中,所以末尾的“(0)”表示使用数组中的第一个值...与"First()"函数本质上是一样的。
抱歉,不确定我的标题有多大意义。
基本上...我有一个报告和数据集(名为 DataSet1)returns 数据有点像这样。
Quarter MonthID Month Value1 Value2 QtrAvgValue1 QtrAvgValue2
Q-1 1 Mar 2017 12 28% 12.3 24.0%
Q-1 2 Feb 2017 15 12% 12.3 24.0%
Q-1 3 Jan 2017 10 32% 12.3 24.0%
Q-2 4 Dec 2016 18 25% 17.3 24.3%
Q-2 5 Nov 2016 14 18% 17.3 24.3%
Q-2 6 Oct 2016 20 30% 17.3 24.3%
最后两列只是该行整个季度的平均值。 [Quarter] 列读作 -1 表示上一季度,-2 表示上一季度。 MonthID 列只是一个自动增量,它会随着过去每个月的增加而增加。所以最近的一个月是 1,下一个月是 2。
我需要一个能让我说出这样的话的表达方式:
当季度 = Q-1 时 return QtrAvgValue1; return 12.3;
我还需要一个表达式,可以说:
当 MonthID = 1 时 return 值 1; return 12;
这可能吗?我不愿意将我的数据集转换成一堆列名荒谬的列
注意:我曾尝试将 IIF 与 SUM/AVG 一起使用,它使用数值作为一种 hack...但我想不出一种方法来处理字符串值。
更新: 我想通了,使用 SSRS 中的 Lookup 和 LookupSet 函数,这是我以前从未使用过的。
示例:
=LookupSet("Q-1", Fields!Quarter.Value, Fields!QtrAvgValue1.Value, "DataSet1")(0)
LookupSet 通常用于一对多关系,但它仍然适用于一对一关系。
这个表达式基本上是说要查找具有 "Q-1" 季度和 return 列 [QtrAvgValue1].
的所有行Lookup set函数将数据放入一个数组中,所以末尾的“(0)”表示使用数组中的第一个值...与"First()"函数本质上是一样的。