在计算的度量中使用 DaysBetween() 函数的参数类型不匹配错误

Argument type mismatch error using the DaysBetween() function in a calculated measure

我正在使用 icCube 5.0.1,正在升级到 5.1。

我正在尝试使用生成器使用以下公式创建计算量度:DaysBetween([LastReportingDate], Today())

[Measure].[LastReportingDate] 是多维数据集中具有日期数据类型的度量。

目的是创建一个计算度量,提供 [Measure].[LastReportingDate] 和今天之间的天数,并在报告中使用它。

当我将新计算的度量添加到报表 table 时,列单元格中填充了 'error',当我将鼠标悬停在单元格上时,错误消息显示为:DaysBetween(): argument (0) 类型不匹配:预期 'date' 得到:'measure'。

手册参考:http://www.iccube.com/support/documentation/mdx/DaysBetween.php

有什么提示吗?非常感谢!

可以使用memberValue 属性:

DaysBetween([LastReportingDate].MemberValue, Today())

(p.s。我使用 Pyramid 而不是 icCube,所以这可能是正确的方式!)

假设 [LastReportingDate] 是时间维度(即,成员键是实际日期(而不是表示日期的字符串)),您可以执行以下操作:

DaysBetween( [LastReportingDate].KEY, Today() )

如果 [LastReportingDate] 是 Date 类型的 [Measures],您可以使用 Value() 函数获取其实际日期,如下所示:

DaysBetween( [Measures].[LastReportingDate].Value, Today() )

注意:如果键是字符串,请使用其模式描述编辑您的问题。

经过更多的研究和实验,我解决了如下问题:

  • 我对计算变量使用了以下公式:Today()-[LastReportingDate]
  • 我使用了以下单元格属性条目:Format_String = '#,##0' 请注意,如果不使用 Format_String,报告会显示一个日期。

感谢大家的帮助。