基于其他属性维和动态度量的SSAS MDX获取维属性

时间:2018-09-05 14:17:11

标签: mdx olap olap-cube ssas-2012

我当前遇到一个问题,因为我需要基于对多维数据集本身执行的计算来动态关联多维多维数据集中维度的属性。

基于用户选择的日期,我必须计算某种类型的物料库存的天数。然后,根据返回值和材料类型以及它们的组,关联旋转尺寸的属性。也就是说,我有一个材料的尺寸类型,一个尺寸组和一个旋转尺寸。然后基于对库存天数的计算(此计算已经完成并且可以正常工作),物料的类型和与特定属性关联的组。

示例:

Product Prod_Typ    Group
PrdA    ZMA1        SAID

如果我的度量“天数”是89,则我必须将ID“ 4”(基于下表)相关联,因为我的度量返回的值介于0(INI)和90(END)之间:

ID  MATTYP  GRP   COD_ID    INI  END        DSC
1   ZMA     CONS    1       0    90         TextA
2   ZMA     CONS    2       91   180        TextB
3   ZMA     CONS    3       181  99999      TextC
4   ZMA1    SAID    1       0    90         TextD
5   ZMA1    SAID    2       91   180        TextE
6   ZMA1    SAID    3       181  99999      TextF

1 个答案:

答案 0 :(得分:0)

您需要执行以下操作。

  1. 使映射表显示事实。可以说 Range_Fact
  2. 将Range_Fact连接到Prod_Typ和Group。这很简单,因为 它们已经作为尺寸出现了。
  3. 在Fact_Range中创建两个度量min(INI)和max(end)。
  4. 现在在查询中,您需要根据 介于min(ini)和Max(end)之间的天数。您的查询将 像

    在列上选择[度量]。[DayCount],

    过滤器( ([[DimProduct]。[PrdA]。[Prda],[DimProductType]。[Pod_Typ]。[Pod_Typ],[DimGroup]。[Group]。[Group]), [度量]。[DayCount]> = [度量]。[minINI]和[Measures]。[DayCount] <= [度量]。[maxEnd] ) 来自[MyCube]