首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSRS表达式:第一个(值),但前提是Value2 =X

SSRS表达式:第一个(值),但前提是Value2 =X
EN

Stack Overflow用户
提问于 2017-05-02 20:55:06
回答 1查看 1.5K关注 0票数 0

抱歉,不知道我的头衔有多有意义。

基本上.我有一个报告,dataset (名为DataSet1)返回数据,类似于这样。

代码语言:javascript
复制
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使用,我想不出一种处理字符串值的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 22:13:28

更新:我在SSRS中使用了和LookupSet函数,这是我以前从未使用过的。

示例:

代码语言:javascript
复制
=LookupSet("Q-1", Fields!Quarter.Value, Fields!QtrAvgValue1.Value, "DataSet1")(0)

LookupSet通常用于一对多的关系,但它仍然适用于一对一的关系。

这个表达式基本上是指查找所有四分之一为"Q-1“的行,并返回列QtrAvgValue1。

查找集函数将数据放入数组中,因此末尾的"(0)“指示使用array...essentially中的第一个值--与" first ()”函数相同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43747064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档