报告表达式 - Cognos报告表达式已转换为SSRS 2012报告表达式

时间:2014-09-05 18:04:31

标签: reporting-services

我是SSRS 2012的新手。我在这个论坛上的学习中找到了很多答案,这就是为什么我决定加入,希望我能够在他们的学习中帮助他人。我有一个问题,但我似乎无法找到答案。

我们目前正在为报告使用Cognos Reporting,但正在切换到Microsoft Reporting Services 2012(SSRS)。 Cognos中的报表表达式与Microsoft Reporting Services中的报表表达式不同,因此它对我造成了问题。当然,这也带来了新的学习机会。

此查询来自Cognos:

if([query1].[fw.ShipQty] > 0) then [query1].[fw2_cost]/[Query1].[fw2_ShipQty].

我不确定如何写出来。我知道我可能会以错误的方式编写它,但下面是我将它写入Microsoft Reporting Services表达式生成器的方法:

=IIF(Fields!fw1_ShipQty.value > 0, Fields!fw1_cost.Value / Fields!fw1_ShipQty)

如果有人能够帮助我,那将是最好的。如果您对我的帖子也有意见,请随时告诉我。

1 个答案:

答案 0 :(得分:0)

看起来你试图避免被零除错误。 (听起来就像微软Clippy那样)。

您的问题是IIF函数始终评估所有传递的子句,而不管返回哪个部分(true值或false值)。

简而言之,即使你先测试零,你仍然可以在条款上得到除零误差。您将不得不重新考虑如何测试零除错误。

以下是好advice provided on MSDN

SSRS使用这样的模式来避免被零除:

=iif(B=0, 0, A / iif(B=0, 1, B))