【问题标题】:wrong result of parallelperiod() for DATE in MDXMDX 中 DATE 的 parallelperiod() 结果错误
【发布时间】:2014-11-26 13:20:33
【问题描述】:

我想提取去年同期和上个月的数据。 为此,我使用 Parallelperiod(),例如

PARALLELPERIOD([date].[year],1,[date].[date].[20-Sep-2014]) , 

我得到的输出:2014 年 9 月 21 日

PARALLELPERIOD([date].[month],1,[date].[date].[20-Sep-2014]) , 

我得到输出:2014 年 8 月 16 日

同样的函数会抛出其他月份的其他日期

你能指导一下这个问题,我做错了什么,或者是否有其他替代方法?

【问题讨论】:

    标签: schema mdx msdn mondrian mdxstudio


    【解决方案1】:

    您必须有一些在多维数据集中不存在的日期。

    PARALLELPERIOD 函数的作用是说好的,我们在 [日期] level 到 2014 年有 262 个成员 - 然后它转到 2013 年并在 [日期] level 找到成员,这也是 262成员。因此,除非您的多维数据集中有完整的日期集,否则此函数将返回令人惊讶的结果。

    因此,解决方案是确保所有历史日期都显示在多维数据集中。这些额外的日期不应导致任何额外的开销,因为它们会在多维数据集中创建空白空间,SSAS

    处理得很好

    【讨论】:

    • 好的,没错。但我想知道parallelperiod() 是否用30 天或31 天或2 月用28 或29 天标识月份???因为在您的回复之后,根据我的结果分析,它无法识别这一点。相反,它只是简单地回到提到日期之前的 30 天。如果是这样,那么数据准确性将受到很大挑战。你能在这种情况下指导一些解决方案吗??
    • 您需要将空天数添加到数据库和多维数据集中,然后它应该可以按预期工作。
    • 您的意思是在事实表中添加空天数吗?因为在 date_dimension 中我已经有完整的日历数据,但在事实表中,如果特定日期的事务不存在,则该 date_sid 的记录不存在。
    猜你喜欢
    • 1970-01-01
    • 2020-12-19
    • 2015-12-19
    • 2013-01-28
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多