Ssas 不是基于维度的主要属性进行计算

Ssas 不是基于维度的主要属性进行计算,ssas,mdx,Ssas,Mdx,不是基于维度的主要属性进行计算 我有一个具有两个属性的维度和一个事实表。 维度通过主属性链接到事实表。 属性具有相同的性质,即可能值的列表相同。事实上,这些都是相关的代码 现在,我可以从多维数据集获得下一个按两个属性分割的结果: Dim.Item Dim.LinkedItem Facts.Amount Item1 Item3 10 Item2 Item3 20 Item3 Item2 5

不是基于维度的主要属性进行计算

我有一个具有两个属性的维度和一个事实表。 维度通过主属性链接到事实表。 属性具有相同的性质,即可能值的列表相同。事实上,这些都是相关的代码

现在,我可以从多维数据集获得下一个按两个属性分割的结果:

Dim.Item    Dim.LinkedItem  Facts.Amount

Item1       Item3           10

Item2       Item3           20

Item3       Item2           50
或者,如果我使用第二个属性:

Dim.LinkedItem  Facts.Amount

Item2           50

Item3           30
我需要一个能让我得到下一个结果的计算:

Dim.Item    Dim.LinkedItem  LinkedAmount

Item1       Item3           0

Item2       Item3           50

Item3       Item2           30
换句话说,对于main属性的每个值,我应该从事实表中获取总和,该值充当第二个属性

请帮助编写此计算的MDX公式。

您需要使用“strtoval”、“currentmember”和“defaultmember”。您的度量定义如下所示

with member 
measures.t 
as 
strtoval('(Dim.Item.defaultmember,[Product].[Category].['+Dim.LinkedItem.currentmember.name+'],Facts.Amount)')
摩阿斯鲁布

非常感谢您的回答!但是我还是没有得到正确的结果。 为了澄清我的情况,我将使用带有真实示例的查询

(1) 此查询返回NULL,这是正确的:

select Time.Year.[Calendar 2018] on 0,
[Item].[Item Code].F268955709 on 1
from [SEL DEMO] where (Measures.[SellIn - Qty])
(2) 这将返回链接项的正确值:

select Time.Year.[Calendar 2018] on 0,
[Item].[Linked Item].F268955709 on 1
from [SEL DEMO] where (Measures.[SellIn - Qty])
(3) 我尝试使用您的建议,但获得所有项目的价值:

with member Measures.[SellIn LI] as 
StrToValue('( Measures.[SellIn - Qty], [Item].[Item Code].DefaultMember, [' + [Item].[Linked Item].CurrentMember.Name + '])')
select crossjoin ([Item].[Item Code].F268955709,
                  Measures.[SellIn LI]) on 0
                  from [SEL DEMO] where (Time.Year.[Calendar 2018])
我试着用绳子 StrToValue('(度量。[SellIn-Qty],[Item].[Item Code].DefaultMember,['+[Item].[Linked Item].CurrentMember.Name+'])) 作为SSAS多维数据集中的计算表达式,并获取所有项目的值

我替换了相同但没有strotValue的代码,得到了相同的值

with member Measures.[SellIn LI] as 
'([Item].[Item Code].DefaultMember, [Item].[Linked Item].CurrentMember, Measures.[SellIn - Qty])'
select crossjoin ([Item].[Item Code].F268955709,
                  Measures.[SellIn LI]) on 0
                  from [SEL DEMO] where (Time.Year.[Calendar 2018])
也许还有其他的想法? 我真的很感谢你的帮助