代码之家  ›  专栏  ›  技术社区  ›  Bart

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

  •  1
  • Bart  · 技术社区  · 9 年前

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

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

    [测量]。[LastReportingDate]是多维数据集中数据类型为Date的度量值。

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

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

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

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

    3 回复  |  直到 9 年前
        1
  •  2
  •   whytheq    9 年前

    是否可以使用memberValue属性:

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

    (注:我使用的是金字塔而不是icCube,所以这可能是标记的方式!)

        2
  •  2
  •   Marc Polizzi    9 年前

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

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

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

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

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

        3
  •  0
  •   Bart    9 年前

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

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

    感谢大家的帮助。

    推荐文章