我是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)
如果有人能够帮助我,那将是最好的。如果您对我的帖子也有意见,请随时告诉我。
答案 0 :(得分:0)
看起来你试图避免被零除错误。 (听起来就像微软Clippy那样)。
您的问题是IIF函数始终评估所有传递的子句,而不管返回哪个部分(true值或false值)。
简而言之,即使你先测试零,你仍然可以在条款上得到除零误差。您将不得不重新考虑如何测试零除错误。
SSRS使用这样的模式来避免被零除:
=iif(B=0, 0, A / iif(B=0, 1, B))