Reporting services 报表表达式-将Cognos报表表达式翻译为SSRS 2012报表表达式

Reporting services 报表表达式-将Cognos报表表达式翻译为SSRS 2012报表表达式,reporting-services,Reporting Services,我是SSRS 2012的新手。我在这个论坛的学习过程中找到了很多答案,这就是我决定加入的原因,希望我能够帮助其他人学习。但我有一个问题似乎找不到答案 我们目前在报告中使用Cognos Reporting,但正在切换到Microsoft Reporting Services 2012(SSRS)。Cognos中的报表表达式与Microsoft Reporting Services中的报表表达式不同,因此这给我带来了一个问题。当然,这也带来了新的学习机会 此查询来自Cognos: if([query

我是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 Expression Builder的:

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

如果有人能帮助我,那将是最好的。如果你对我的帖子也有评论,请不要犹豫,让我知道。

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

您的问题是,IIF函数总是计算所有传递的子句,而不管返回哪个部分(真值或假值)

简而言之,即使您首先测试零,您仍然会在子句中得到被零除的错误。您必须重新考虑如何测试除零错误

以下是好消息:

对于SSR,使用如下模式以避免被零除:

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

多谢各位的意见。这正是我要找的!我还学习了IIF的工作原理。再次感谢!