【问题标题】:Missing value of measure (calculated member )度量的缺失值(计算成员)
【发布时间】:2019-07-11 03:20:27
【问题描述】:

我有一个数据仓库,它是 OLAP 多维数据集的底层数据库。 当我这样运行查询时:

SELECT  dimS.Attribute2,SUM(fact.LastValue)
FROM FactTable fact
JOIN DimS dimS ON fact.DimSKey = DimS.DimSKey
GROUP BY DimSKey.Attribute2 

我可以看到 dimS 表中所有现有的 Attribute2 在事实表中都有对应的行。

另一方面,我有一个经过计算的度量:

CREATE MEMBER CURRENTCUBE.[MEASURES].[MyMeasure]
AS ([Measures].[FactTable - LastValue]
, [DimS].[S Hierarchy].[All].[Hierarchy SomeName]
, [DimS].[Category].[All]
, [DimS].[Question].CurrentMember
, [CimC].[Status].&[Active]
),DISPLAY_FOLDER='Folder',VISIBLE = 1;

当在 MDX 下运行时:

SELECT
{ [Measures].[MyMeasure] } ON COLUMNS, 
{ ([Survey].[Attribute2].ALLMEMBERS ) }  ON ROWS 
FROM [MyCube]

我可以看到 Attribute2 中的 2 个没有分配给它们的值(null)。

什么会导致这样的问题(DimS 和立方体刚刚被完全处理)?

【问题讨论】:

  • 在您的 SQL 查询中加入 [CimC] 的数据库表,然后在 where 过滤器中添加主动检查
  • 查询 DWH [CimC] 中的附加条件。[Status] = 'Active' 不会影响查询结果。
  • 如果返回 2 属性的结果,请尝试以下查询 从 yourcube 中选择 [Measures].[FactTable - LastValue] on 0,非空 [Survey].[Attribute2].[Attribute2] on 1其中 [CimC].[Status].&[Active]
  • MoazRub 感谢您的帮助。看起来我找到了 [Attribute2] 有空单元格的原因。在下面发布了更多详细信息。
  • 不客气

标签: sql-server ssas mdx olap-cube


【解决方案1】:

找到根本原因。

计算度量的 MDX 定义中对 [DimS].[S Hierarchy].[All].[Hierarchy SomeName] 的引用是另一个计算度量,实际上我们在维度层次结构中有硬编码值。而对于 [Attribute2] 这个条件不满足。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多