0

我在 Visual Studio 中创建了报告。问题是在总字段中除以零。我有一列的值为 00:03:15,另一列的值为 00:00:00 我想对这些列求和,并想显示第一列和第二列的平均值。我在我的例子中使用了这个表达式(公式):

=Format(
    TimeSerial(0,0, 
        Round(iif(sum(Fields!N_INBOUND.Value)=0,0,
        sum(Fields!T_INBOUND.Value/Fields!N_INBOUND.Value))

    +

    iif(sum(Fields!N_INBOUND.Value)=0,0,
    sum(Fields!T_HOLD.Value/Fields!N_INBOUND.Value)

    +iif(first(Fields!HANDLING_TIME_MEASURE_TYPE.Value)=2,
    sum(Fields!N_INBOUND.Value-Fields!N_TRANSFERS_TAKEN.Value),0))

    +iif(sum(Fields!N_INBOUND.Value)=0,0,
    sum(Fields!T_CONSULT.Value/Fields!N_INBOUND.Value)

    +iif(first(Fields!HANDLING_TIME_MEASURE_TYPE.Value)=2,
    sum(Fields!N_CONSULT.Value-Fields!N_TRANSFERS_TAKEN.Value),0)))/count(Fields!PRESENTATION_NAME.Value))
, "HH:mm:ss")

我使用了这个https://sqldusty.com/2011/08/01/ssrs-expression-iif-statement-divide-by-zero-error/看起来像:

=Format(
    TimeSerial(0,0, 
        Round(      
        iif(count(Fields!PRESENTATION_NAME.Value)=0,0,      
        (iif(sum(Fields!N_INBOUND.Value)=0,0,
        sum(Fields!T_INBOUND.Value/Fields!N_INBOUND.Value))

    +

    iif(sum(Fields!N_INBOUND.Value)=0,0,
    sum(Fields!T_HOLD.Value/Fields!N_INBOUND.Value)

    +iif(first(Fields!HANDLING_TIME_MEASURE_TYPE.Value)=2,
    sum(Fields!N_INBOUND.Value-Fields!N_TRANSFERS_TAKEN.Value),0))

    +iif(sum(Fields!N_INBOUND.Value)=0,0,
    sum(Fields!T_CONSULT.Value/Fields!N_INBOUND.Value)

    +iif(first(Fields!HANDLING_TIME_MEASURE_TYPE.Value)=2,
    sum(Fields!N_CONSULT.Value-Fields!N_TRANSFERS_TAKEN.Value),0)))/iif(count(Fields!PRESENTATION_NAME.Value)=0,1,count(Fields!PRESENTATION_NAME.Value)) ) ) )
, "HH:mm:ss")  

但是向我展示了一个错误。任何知道如何解决这个问题的人?

4

1 回答 1

0

您的数据如下所示,如果我错了,请纠正我。在底部,我为两列添加了总计。

注意:您必须注意您的列(T_INBOUND 和 N_INBOUND)返回值的类型。 在此处输入图像描述

现在为 T_INBOUND 和 N_INBOUND 创建一个总计

为列组添加总计 在 tablix 数据区域的行组区域中,右键单击列组区域中需要总计的单元格,然后指向添加总计,然后单击之前或之后。

当前组之外的新列将添加到数据区域,然后为列中的每个数字字段添加默认总计。链接: https ://docs.microsoft.com/en-us/sql/reporting-services/report-design/add-a-total-to-a-group-or-tablix-data-region-report-builder-和-ssrs?view=sql-server-2017

拥有总计后,您可以在总计旁边或总计下方创建一个单元格,并添加如下表达式

    IIF(IsNothing(Fields!Total_N_BOUND.Value) OR Fields!Total_N_BOUND.Value=0,0,
Fields!Total_T_BOUND.Value/Fields!Total_N_BOUND.Value)

在此处输入图像描述

于 2019-04-30T11:17:23.100 回答