具有相同维度的度量值的SSAS计算成员
我试图创建一个计算的度量值,减去不同组中的度量值,但前提是它们具有相同的维度成员,不管是什么。编辑-基本上排除减法中的未知成员数 我已尝试使用范围:具有相同维度的度量值的SSAS计算成员,ssas,mdx,cube,Ssas,Mdx,Cube,我试图创建一个计算的度量值,减去不同组中的度量值,但前提是它们具有相同的维度成员,不管是什么。编辑-基本上排除减法中的未知成员数 我已尝试使用范围: CREATE MEMBER CURRENTCUBE.[Measures].[CalcField] as NULL; SCOPE([Dimension1].[DimensionField1].MEMBERS); [Measures].[CalcField] = [Measures].[a] - [Measures].[b]; END SCO
CREATE MEMBER CURRENTCUBE.[Measures].[CalcField] as NULL;
SCOPE([Dimension1].[DimensionField1].MEMBERS);
[Measures].[CalcField] = [Measures].[a] - [Measures].[b];
END SCOPE;
我也尝试过使用元组,但没有成功:
CREATE MEMBER CURRENTCUBE.[Measures].[CalcField]
AS ([Measures].[a] - [Measures].[b], [Dimension1].[DimensionField1]);
但我认为我缺少一些基本的东西
编辑
a列b维
1.90X
2.0.2 x
3.15无效
如果你把这些行加起来,我想要的答案是7而不是5
使用一个简单的例子,如果使用中的维度有效,那么它将再次盲目地减去所有内容
CASE
WHEN [Dimension1].[DimensionField1] IS [Dimension1].[DimensionField1].UnknownMember THEN 0
ELSE [Measures].[a] - [Measures].[b]
END
使用聚合在高级别工作,但是当我使用维度时,我没有得到每个成员的结果
Aggregate(
EXCEPT(
[Dimension1].[DimensionField1].Members, {[Dimension1].[DimensionField1].UnknownMember, [Dimension1].[DimensionField1].[All]}
),[Measures].[a])
-
Aggregate(
EXCEPT(
[Dimension1].[DimensionField1].Members, {[Dimension1].[DimensionField1].UnknownMember, [Dimension1].[DimensionField1].[All]}
),[Measures].[b])
解决方案
如果我不清楚我的问题,我很抱歉,但我最终解决了这个问题,将我需要的数据放在ETL阶段,而不是在多维数据集中计算它您是否尝试对第二个片段进行求和或聚合
With Member [Measures].[CalcField] as [Measures].[a] - [Measures].[b]
Select [Measures].[CalcField]
on columns,
[Dimension1].[DimensionField1].MEMBERS
on rows
from [cube]
CREATE MEMBER CURRENTCUBE.[Measures].[CalcField]
AS
Sum(
[Measures].[a] - [Measures].[b],
[Dimension1].[DimensionField1]
);
CREATE MEMBER CURRENTCUBE.[Measures].[CalcField]
AS
Aggregate(
[Measures].[a] - [Measures].[b],
[Dimension1].[DimensionField1]
);
确切的问题是什么?是否有错误消息?请提供基于Adventure Works的示例-我们会为您找到解决方案。@DanielHanczyc-在许多情况下,给出基于AW的示例可能是一项艰巨的任务。因此,你会发现关于SQL或MDX的大多数问题都不是基于AW的。我在SSAS中设计计算列,没有错误,只是盲目地从a中减去b,而不管维度如何。我希望它只从a中减去b,其中两个度量值具有相同的维度值。也许我需要的是,在聚合过程中,如果它不是未知值,则只进行减法,我不确定。我不明白-两个度量值具有相同的维度值??这似乎与如何使用AggregateEXCEPT[Dimension1].[DimensionField1]。成员,{[Dimension1].[DimensionField1]。UnknownMember,[Dimension1].[DimensionField1].[All]}[Measures].[a]-AggregateEXCEPT[Dimension1].[DimensionField1]。成员,{[Dimension1].[DimensionField1].[All].[Measures].[b]几乎可以工作,除非我不能在以后的选择中使用维度