繁体   English   中英

使用表达式作为值对 Tablix 进行排序

[英]Sorting Tablix with an Expression as its Value

我是 SSRS 的新手,无法对我的数据进行排序。

我有一个要排序的列,它具有以下表达式: =((SUM(VAL(IIF(Fields!SecTypeBaseCode.Value="cs",Fields!Marketvalue.Value,0))))/ (Sum( Fields!Marketvalue.Value)+Sum(Fields!AccruedInterest.Value)))/(Fields!EquityTarget.Value/100)

为了尝试对其计算值进行排序,我创建了一个带有表达式的计算字段。 然后我尝试根据计算字段进行排序。 但是,每次我这样做都会给我一个错误,因为表达式有一个聚合。 知道如何解决此问题或对其进行排序吗?

排序的聚合表达式需要在单个项目的组上,而不是在数据集、表格或图表的属性上。

您可能会收到一个静默错误,该错误允许报告运行,但由于可能存在除以零问题而无法计算表达式。 如果您在 Visual Studio 中预览报告,您可能会在错误列表中看到错误。

SSRS 喜欢聪明地检查除以零时可能出现的问题。 不幸的是,它会找到字段可能为零的任何地方。 要解决此问题,请使用 IIF 语句,以便将可能的零除数替换为 1,将分子替换为零。 你的表达式有点复杂,因为你有两个除数,但它应该是这样的

=   IIF(Sum(Fields!Marketvalue.Value + Fields!AccruedInterest.Value) = 0 
        OR Fields!EquityTarget.Value = 0, 
            0, 
            SUM(IIF(Fields!SecTypeBaseCode.Value="cs", Fields!Marketvalue.Value, 0))
        )
    / 
    IIF(Sum(Fields!Marketvalue.Value + Fields!AccruedInterest.Value) = 0, 
        1, 
        Sum(Fields!Marketvalue.Value + Fields!AccruedInterest.Value)) 
    / 
    IIF(Fields!EquityTarget.Value = 0, 1, Fields!EquityTarget.Value)
    * 
    100

另请参阅: 避免在 SSRS 表达式中被零除

SSRS 表达式除以零误差

尝试在 SSRS 表达式中除以零错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM