【发布时间】:2014-03-05 18:10:41
【问题描述】:
我有几列进入 SSRS 报告中关于半小时级别的思科 UCCE 数据。
管理层希望以分钟为单位查看报告中的值(传入的数据以秒为单位),他们只希望平均值包括呼叫次数高于零的值(呼叫的平均时间没有意义当没有任何需要花时间的电话时,包括零值)。他们也不希望在尝试除以零或尝试对空字符串进行 DateAdd 的单元格中看到 #Error。
我有这种可怕的表达方式,它应该这样做,但它不起作用。
=iff(Floor(iif(count(iif(Fields!CallsHandled.Value=0, nothing
,1))=0,"",sum(Fields!AHT.Value)/sum(iif(Fields!CallsHandled.Value=0, nothing
,Fields!CallsHandled.Value))) /
60)="","",Floor(iif(count(iif(Fields!CallsHandled.Value=0, nothing
,1))=0,"",sum(Fields!AHT.Value)/sum(iif(Fields!CallsHandled.Value=0, nothing
,Fields!CallsHandled.Value))) / 60) &":"& Format(DateAdd("s",
Avg(iif(count(iif(Fields!CallsHandled.Value=0, nothing
,1))=0,"",sum(Fields!AHT.Value)/sum(iif(Fields!CallsHandled.Value=0, nothing
,Fields!CallsHandled.Value)))), "00:00:00"), "ss"))
它尝试确定在 HandledCalls 字段中哪些行的数字大于零,然后通过将 AHT 的总和除以 HandledCalls 的数量来平均 AHT 字段。在此过程中的某个地方会导致此错误:
“文本运行‘AHT.Paragraphs[0].TextRuns[0]’的值表达式包含错误:[BC30451] 未声明名称‘iff’。”
被扔掉。
这里有没有人使用过 SSRS 来显示以这种方式计算的平均值(仅使用非零条目),同时显示该平均值,该平均值仅包含时间跨度中的秒数,以分钟为单位?
编辑:我的表达开头有一个错字。它在运行报告时不再抛出错误消息,但现在每个单元格都包含#Error,无论 HandledCall 编号如何。
【问题讨论】:
-
根据错误
iffis not a valid function,这是表达式开头的错字;当您将其替换为iif时会发生什么? -
你是对的,一开始有一个错字,但不幸的是,公式仍然不起作用。现在每个单元格都包含#Error,无论调用号如何。
标签: reporting-services conditional average