如何根据另一个维度的当前级别过滤一个维度?

Posted

技术标签:

【中文标题】如何根据另一个维度的当前级别过滤一个维度?【英文标题】:How do I filter a dimension based on current level of another dimension? 【发布时间】:2013-06-07 14:35:47 【问题描述】:

我正在尝试在我的多维数据集中模拟“同店”销售。

我有一个带有会计日历的标准日期维度。

我的商店有一个位置维度。每个商店都有指定年份、期间、季度和周的属性,指示何时应将给定商店包含在报告中。

我在想我想走的路线是一个动态命名集,但我可能错了。

基本上,我想查看任何给定时间范围内的净销售额,并且只显示同店销售额。如果我正在查看年份级别,则需要检查年份属性。如果我正在查看 Quarter 级别,则需要检查 Quarter 属性。

如何根据日期维度的级别编写过滤器?我可以有一个包含所有这些逻辑的命名的 SameStore 集吗?

编辑:@Prabhash Jha 要求的其他信息

这是我想要查看的视图 - 但我希望有一种方法可以使这种动态足以处理任何日期计算。

                  2012         2013
Store 1            1.2          1.3
Store 2             --          1.6
Store 3            1.3          2.1

在此级别,Store 2 的 SameStoreStartYear 值为“2013”​​。

如果我深入到 2013 年:

                Q1          Q2         Q3
Store 1        0.2         0.3        0.5       
Store 2         --          --         .4
Store 3        0.2         0.3        0.5

在此级别,Store 2 的 SameStoreStartMonth 值为“3”。

这样一直持续到周级别。

我编写了一些 MDX 来获取应该包含的与 Date.Fiscal.currentmember 相关的商店集,但仅在年份级别进行比较。正在努力使其与钻探级别以及 Date.Fiscal 层次结构相关。

我将它作为命名集,但它使用元组,并且命名集没有出现在多维数据集中 - 我相信这是因为它使用多个层次结构并且它不知道将它放在哪里。

到目前为止,这是我的 MDX:

select
filter(
([Date].[Fiscal].[Fiscal Year], [Location].[Store].[Store]), 
[Location].[SameStoreYearBegin].currentmember.properties("Key") 
    <= [Date].[Fiscal].currentmember.properties("Key"))
on 0
from Sales

【问题讨论】:

【参考方案1】:

您能否澄清一下“查看任何给定时间范围内的净销售额,并且只显示同店销售额”是什么意思?你能为你当前和预期的结果准备一些模型吗?

【讨论】:

感谢您的回复 - 我添加了更多信息。

以上是关于如何根据另一个维度的当前级别过滤一个维度?的主要内容,如果未能解决你的问题,请参考以下文章

mondrian mdx 过滤日期维度中年份级别的集合

如何对链接到具有不同粒度级别的多个事实的维度表进行建模?

布尔或过滤的维度建模

在另一个事实表中使用退化维度

OR-tools:根据python中另一个维度的积累添加一个维度(具体是每24小时使用的车辆成本)

如何使日期维度与事实和另一个维度通用