【问题标题】:Incorrect Measure result测量结果不正确
【发布时间】:2016-04-20 16:45:44
【问题描述】:

我有一个带有 Y 列的事实表 X,我已将该列添加为 SSAS 2012 上的度量。该度量的属性是 AggregateFunction:Sum,DataType:Integer,源:X.Y,DataType:Integer,BindingType:列绑定,NullProcessing:自动。

On measure Group Properties, Error Configuration ReportAndStop, Key ErrorAction: DiscardRecord, KeyErrorLimit:0, KeyErrorLimitAction: stopprocessing。 IgnoreUnrelatedDimensions:True。

当我(仅)在浏览器 Grid 上添加此度量时,我得到 318597,当我执行 SELECT SUM(Y) FROM X 时,我得到 990416。当我使用 2015 年和 2016 年的日期维度时,也会发生同样的情况。数据用于测试。从哪里开始有什么想法?与 SSAS 度量相比,sql 查询是否错误?

【问题讨论】:

    标签: ssas


    【解决方案1】:

    问题可能出在与此度量组相关的维度上。您的 SQL 查询覆盖了整个事实表。您在浏览器中的结果仅涵盖了事实表中与对其进行切片的每个维度中的维度成员对应的那部分。事实表中必须存在与至少一个维度中的任何成员不相关的行。

    这很可能是因为某些维度成员尚未加载,或者(在我们进入 SSAS 阶段之前)事实表本身已经包含缺少维度键的行。

    更好的比较是

    SELECT SUM(Y) FROM X
    INNER JOIN Dimension1 ON [something]
    INNER JOIN Dimension2 ON [something else]
    ...
    

    如果这给出了与浏览器网格相同的结果,那么在多维数据集处理中没有任何问题。如果不是,则问题出在处理中:可能维度成员没有从源进入维度。

    【讨论】:

    • 使用来自 SSMS 的内部连接运行查询,与 SSAS 相比,我得到的数字更大(使用 4 个 Dims 连接)。我有 Fact A 与 Dim1、Dim2、Dim3 和 Dim4 的定期连接。在 Dim4 的维度结构中,我包含了 4 个相关表的属性。我已经创建了所有以 Dim4.Id 结尾的用户层次结构为了检查测量结果,我只需要加入 Dim 1-4 或/和 Dim4 的 4 个相关表?
    • 你必须加入到最终成为 Dim4 人口的行列。检查这个维度的数据源:从你说的可能是 Table1 INNER JOIN Table2 INNER JOIN Table3 INNER JOIN 表 4。我首先检查这个维度的人口(在 SSAS 中)是否与你认为应该是匹配的(在SQL 源代码)。
    • 也可以查看这篇文章:msdn.microsoft.com/en-us/library/ms174774.aspx。我怀疑您在事实表中获得的维度键与任何维度键都不匹配 - 但 SSAS 将如何处理这取决于您设置的处理选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多