首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MDX -如何获得每个父母最近的孙子孙女?

MDX -如何获得每个父母最近的孙子孙女?
EN

Stack Overflow用户
提问于 2012-09-14 22:00:31
回答 1查看 762关注 0票数 0

我有一个问题,那就是我如何才能获得最近一个孙子的维度信息,同时从孩子的父母那里获得每个父母的事实金额(如果这是有意义的,我对SSAS和MDX非常陌生,所以请耐心等待,我将进一步解释)。

我不太确定如何在维度中构建表(使用dim key或group key)或属性关系,以及如何有效地搜索多维数据集,最好是在块模式中,而不是逐个单元格。

情况是这样的:

带有500+million行的事实表,对财务数据进行了调整,因此从日期到时间的开始进行求和是我目前正在使用的。

70+million行的维表有一个帐户(祖父母),它可以有1:M的索赔(父级),它也是类型2,具有索赔级别信息(孙子?)记录每个索赔发生维度更改时的开始日期和结束日期。在子级有一个Dim键,在声明(父)级有一个组键。

到目前为止,我已经尝试在事实和Dim之间使用桥接表,并使用以下MDX逻辑,对于非常小的帐户可以工作,但对于较大的帐户不能很好地扩展。需要注意的一点是,较大的帐户可能有大约60,000个索赔。

对于以下内容,思考过程是获取传入日期的每个claim <=的尾部。然后将此信息用于事实数据切片,并通过组密钥(不是dim密钥,因为需要总计的财务数据)对每个索赔的数据求和。

代码语言:javascript
运行
复制
with 
set [FilterRecBeginDate] as 
Generate([CLAIM].[Claim Number].Children,
Tail(Filter(
    CrossJoin([CLAIM].[Claim Number].CurrentMember,
          {[CLAIM].[Claim Record Begin Date].Children},
          {[CLAIM].[Claim Status Code].Children}
          )
, [CLAIM].[Claim Record Begin Date].CurrentMember.Name <= '2009-08-23'
)
)
)
select 
{[Measures].[Paid Amount], 
 [Measures].[Paid Loss Amount]}on columns,
non empty [FilterRecBeginDate] on rows
from [Cube]
where ([CALENDAR DATE].[Date].&[19000101]:[CALENDAR DATE].[Date].&[2009-08-23T00:00:00]) *
{([CLAIM].[Claimant Name].&[xxxxx])}

1.)如何以不同的方式构造多维数据集和/或Dim属性关系,以更好地支持这种类型的查询,只给出一个帐户和日期作为参数?

2.)我使用过MDX Generate和Desendants,它们似乎都是一个接一个地循环。也许循环是唯一的选择,但我希望有更好的方法。是否可以通过以不同方式编写MDX来利用块模式?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-09-14 22:45:15

我认为你可以通过减小交叉连接的大小来优化FilterRecBeginDate的计算。您还可以计算一次过滤器:

代码语言:javascript
运行
复制
with 
set [tmp] as 
    CrossJoin(
        Filter([CLAIM].[Claim Record Begin Date].Children, 
               [CLAIM].[Claim Record Begin Date].CurrentMember.Name <= '2009-08-23'
        ), 
        [CLAIM].[Claim Status Code].Children
    )
set [FilterRecBeginDate] as 
    Generate([CLAIM].[Claim Number].Children,
        Tail(
            CrossJoin({[CLAIM].[Claim Number].CurrentMember}, [tmp])
        )
    )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12426113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档