2015-02-24 53 views
0

我是SSRS的新手,并且遇到了有关我创建的报告的问题。也许我只是不理解如何将数据从数据集检索,但设置这样的结果:在SSRS中检索具有多个条件的IIF表达式中的数据时出错

Count ColA  ColB  ColC 
1  Business Start  Regular 
4  Global  Middle  Regular 
5  Online  Middle  Regular 
8  Online  End   Regular 
13  Online  Start  Regular 

我的假设是,我应该能够使用表达式这样

=iif(Fields!ColA.Value = "Online" AND Fields!ColB.Value = "Start" AND Fields!ColC.Value = "Regular", Fields!Count.Value, 0) 

在文本框中,它应该返回13.相反,它返回0的假条件。

任何帮助,你可以提供在这将不胜感激。我确信答案在那里,但是我对SSRS的了解有限,可能会妨碍我的搜索标准技能。

+0

我想出了我的问题。发布答案,比如说。 – 2015-02-24 22:04:21

回答

-1

我没有一个活动的SSRS安装来试用这个,但是如果在每个子句的周围添加括号会发生什么?

=iif((Fields!ColA.Value = "Online") AND (Fields!ColB.Value = "Start") AND (Fields!ColC.Value = "Regular"), Fields!Count.Value, 0) 

供参考,便利的文档:https://msdn.microsoft.com/en-us/library/ms157328.aspx

我记得现在我通常会将这种逻辑转移到SQL查询中,这可以使调试变得更容易,甚至促进单元测试。例如,你可以在你的SELECT语句添加更多的领域,具有类似:

SELECT CASE WHEN ColA == 'Online' AND 
        ColB == 'Start' AND 
        ColC == 'Regular' 
      THEN [Count] 
      ELSE 0 END as ColD, 

现在你可以简单地指寒冷的SSRS。

+0

没有骰子。它仍在评估为假。感谢您的有用链接。为了将来的参考书签。 – 2015-02-24 18:06:23

0

答案就是你的窝正是如此综合投资框架:

=IIf(Fields!ColA.Value = "Online", IIf(Fields!ColB.Value = "Start", IIf(Fields!ColC.Value = "Regular", Fields!Count.Value, 0), 0), 0) 
0

我想通了,我的问题。

当我创建我的Tablix时,我手动添加了一堆行和列以显示数据,并在做这些操作时删除了链接到DataSet的行和列(不知道我是如何做到的)。

我的恐惧无法显示所有可能的输出(即需要显示计数为零的行)。我重新修改了我的查询以包含零条目,并使用新查询重新创建了报告,所有事情都解决了。

我知道我不应该为做noob而感到难过,但是认真的,呃。