抱歉,不知道我的头衔有多有意义。
基本上.我有一个报告,dataset (名为DataSet1)返回数据,类似于这样。
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%最后两列只是整个季度的行的平均值。季度列读为-1表示上季度,-2表示前一季度。MonthID列只是一个自动增量,每个月上一次都会增加。所以最近一个月是1个月,下个月是2个月。
我需要一个表达方式,让我这样说:
当季度= Q-1时,返回QtrAvgValue1,返回12.3;
我还需要一个可以说:
当MonthID =1时,返回Value1,返回12;
这个是可能的吗?我不想让我的数据集变成一堆列,列的名字很可笑。
注意:我尝试过在SUM/AVG中使用IIF,它可以将数值作为一种hack...but使用,我想不出一种处理字符串值的方法。
发布于 2017-05-02 22:13:28
更新:我在SSRS中使用了和LookupSet函数,这是我以前从未使用过的。
示例:
=LookupSet("Q-1", Fields!Quarter.Value, Fields!QtrAvgValue1.Value, "DataSet1")(0)LookupSet通常用于一对多的关系,但它仍然适用于一对一的关系。
这个表达式基本上是指查找所有四分之一为"Q-1“的行,并返回列QtrAvgValue1。
查找集函数将数据放入数组中,因此末尾的"(0)“指示使用array...essentially中的第一个值--与" first ()”函数相同。
https://stackoverflow.com/questions/43747064
复制相似问题