sql-server - SSAS Cube 中的条件颜色格式

标签 sql-server excel ssas mdx olap-cube

我有一个带有事实表的星型模式,其中包含以下内容:

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/

相关文章:

vba - 如何将引发的错误传递给 VBA 中的自定义错误处理程序?

vba - 如何循环访问 Excel 数据透视表的辅助(子)字段?

vba - 从 VBA 项目中删除密码

ssas - 在多对多维度上等效的MDX WHERE NOT IN()

asp.net-mvc - 在 ASP.NET MVC 中动态检索 Analysis Services (SSAS) 多维数据集的最佳选择

c# - SSAS:以编程方式永久创建计算成员

sql - cfqueryparam 问题

sql-server - 从vb.net调用具有已知错误的存储过程的错误处理

sql-server - 在 SQL Server 的 where 子句中使用函数 (IS_MEMBER ) 时出现基数估计警告

sql - 二叉树获取最左或最右的底部