首页 文章

MSAS m2m属性未按预期解析

提问于
浏览
0

我不是MSAS Cube的专家,所以可能这很明显,但这阻碍了我们团队的一个重要特征 .

我们有一个“指标”的事实表(计算器的基本值),它是针对特定日期计算的 . 指标有一个versionId,按照功能规则对它们进行分组 .

它像:

From Date, Value,  NodeId, VersionId
D0       - 1.45 -  N2     - V0

我们有一个“VersionsAssociation”事实表,其中列出了所有版本(与“指标”事实表中的版本完全相同),这些版本是有效且可见的以及日期 .

为了满足客户需求,某些版本在多个日期可见 . 例如,对于日期D0计算的版本可以在日期D1,D2,...中可见/重新复制;所以对于特定版本V0,我们将在“VersionAssociation”中:

VersionId , Date From (computed), Date To (Visible at what date)

V0        - D0                  - D0
V0        - D0                  - D1
V0        - D0                  - D2
V0        - D0                  - D3

...

在我们的立方体模型中,“指标”事实具有“起始日期”,即它们计算的日期,但没有“到日期”,因为当它们可见时不符合指标,而是由“VersionAssociation”决定 .

这意味着在我们的“维度用法”面板中,我们在“To Date”维度上指向“指标”指向“VersionAssociation”的多对多关系 .

到目前为止,这部分按预期工作 . 当我们在Excel中选择“To Date”= D1时,我们看到从D0重新复制的指标,具有正确的值(没有重复) .

然后我们有一个叫做投影的东西,我们将指标值与特定维度分开 . 为此,我们有一个名为“投影”的第三个度量组,其值为“权重” .

权重具有“到日期”,因为权重是针对特定日期计算的,即使指标从D0复制到D1,当投影时,也会使用D1权重进行投影 .

我们也复制了从日期开始的所有可用的重量,这很奇怪,但没有它,结果是纯粹的混乱 .

我们在权重中的含义:

NodeId,From Date, To Date, Projection Axis, Weight
N2    , D0      , D0     , P1              , 0.75
N2    , D0      , D0     , P2              , 0.25  (a value on node N2 would be split into 2 different values, where the sum is still the same)
N2    , D0      , D1     , P1              , 0.70
N2    , D0      , D1     , P2              , 0.30

这就是问题所在:

  • 测量组"Projection"和"Indicator"直接链接到维"Projection" .

  • "Projection"具有指向"From Date"和"To Date"维度的直接链接 .

  • "Indicator"具有到"From Date"维度的直接链接,但通过"Version Association"度量组只有对"To Date"维度的m2m引用 .

要应用投影权重,我们在“指标”度量组中使用度量表达式,具有类似“[Value Unit] * [Weight]”的内容 .

由于某些原因,这会导致MSAS无法正确地确定有资格应用于“指标”度量值组中某个值的权重 .

例如,如果我们查看excel并询问D1日期(所有日期的相同行为),在Projection Axsi P1上我们得到:

Value    Weight  
1.45   * 0.75   (Weight: From Date D0, To Date D0, P1)
+ 1.45 * 0.70   (Weight: From Date D0, To Date D1, P1)

对于D1和P2,我们有:

Value    Weight  
1.45   * 0.25   (Weight: From Date D0, To Date D0, P2)
+ 1.45 * 0.30   (Weight: From Date D0, To Date D1, P2)

这导致值无意义且不可读 .

所有这一切的目的是要求一种方法来限制可以在度量表达式中应用的权重 . 我们尝试在“From Date”,“To Date”和“Weight”度量或“Value”度量上使用范围,但是多维数据集永远不会进入我们的SCOPE指令 .

这很长很复杂,但我们被困住了 .

1 回答

  • 0

    我不确定我是否完全解决了你的问题,但我理解的是,因为事实指标中没有投影轴,因此对于类似的FromDate和ToDate,当选择Projection时,它们重复值 . 来自您的数据的示例

    D0,D0,P1,0.75 D0,D0,P2,0.25

    为此,对于两行,指标值重复1.45,其中第一行应为1.45 * 0.75,第二行为1.45 * 0.25 .

    如果这是问题,请尝试以下查询

    with member Measures.IndicatorTest
    as 
    ([DimFromDate].[FromDate].CurrentMember,
    [DimToDate].[ToDate].CurrentMember,
    [Value Unit])
    
    member Measures.ProjectionTest
    as 
    ([DimFromDate].[FromDate].CurrentMember,
    [DimToDate].[ToDate].CurrentMember,
    [DimProjection].[Projection].CurrentMember
    [Weight])
    
    
    member Measures.WeightedIndicator
    as
    Measures.IndicatorTest*Measures.ProjectionTest
    
    select Measures.WeightedIndicator
    on columns,
    nonempty
    (
    [DimFromDate].[FromDate].[FromDate],
    [DimToDate].[ToDate].[ToDate],
    [DimProjection].[Projection].[Projection]
    )
    on rows 
    from yourCube
    

相关问题