我有一个带有事实表的星型模式,其中包含以下内容:
ID BIGINT IDENTITY,
FK_Dimension1 BIGINT,
FK_Dimension2 BIGINT,
dataValue NUMERIC(20, 8),
classification NVARCHAR(20)
分类定义每个数据值的安全分类,可以包含“公共(public)”或“ secret ”。
我创建了一个包含分类字段的退化维度,并且 dataValue 驻留在关联的度量表中。
如果该字段的聚合中的任何值包含相关的“ secret ”分类,我的要求是在将数据呈现为 RED 的任何工具中格式化 dataValue。因此,例如,如果在一个 excel 数据透视表中,我正在显示 3 个值的聚合,其中一个是 secret 的,那么该值应该显示为红色文本。
我的多维数据集计算中有以下 MDX 查询来处理格式:
CALCULATE;
SCOPE
(
[Measures].[dataValue]
);
If([MyDegenDimension].[Classification].[Confidential]) Then
Fore_Color(This) = 255
End If;
END SCOPE;
每当 dataValue 字段中的值不是零时,这非常有用。如果我在数据透视表中向下钻取以显示恰好为零的单个值,则颜色格式不适用。业务要求是任何 secret 值都应标记为红色,并且零值可能是 secret 是有效的。请注意,即使数据透视表中未使用分类维度,它也会将 dataValue 显示为红色。
有什么方法可以更改我的 MDX 查询,使其也适用于零值?不久前,我在这里发布了一个类似的问题 Calculation in SSAS Cube not working for zero data values但从未得到完整的解决方案。
最佳答案
我认为您的 SCOPE 声明只需要调整一下。
尝试这个:
CALCULATE;
SCOPE
(
[MyDegenDimension].[Classification].[Confidential], [Measures].[dataValue]
);
Fore_Color(This) = 255
END SCOPE;
关于sql-server - SSAS Cube 中的条件颜色格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27518455/