Scope SSAS立方体计算,以在更粗略的水平上总结另一个度量

Scope SSAS立方体计算,以在更粗略的水平上总结另一个度量,scope,ssas,mdx,measure,Scope,Ssas,Mdx,Measure,我在使用SQLServer2008R2进行摘要报告的MDX度量计算时遇到性能问题 我有一个Person维度和一个相关的事实表,其中包含每个人的多个记录。(资格) [度量][其他质量计数]会给我某种类型的资格证书的数量。 每个人可以有多个,因此一个人的[测量][其他质量计数]>1 然而,在我的总结报告中,我想指出这一点,即每人仅1份。(注明具有其他资格的人数。) 摘要报告根据一些其他维度(包括未知区域层次结构(可以是3个层次结构之一))汇总值 我的做法如下: MEMBER [Measures].[

我在使用SQLServer2008R2进行摘要报告的MDX度量计算时遇到性能问题

我有一个Person维度和一个相关的事实表,其中包含每个人的多个记录。(资格)

[度量][其他质量计数]会给我某种类型的资格证书的数量。 每个人可以有多个,因此一个人的[测量][其他质量计数]>1

然而,在我的总结报告中,我想指出这一点,即每人仅1份。(注明具有其他资格的人数。)

摘要报告根据一些其他维度(包括未知区域层次结构(可以是3个层次结构之一))汇总值

我的做法如下:

MEMBER [Measures].[Other Count2]
AS
SUM(
    EXISTING [Person].[Staff Code].[Staff Code].Members,
    IIF([Measures].[Other Count] > 0, 1, NULL)
)

然而,我必须创建几个更派生的度量值——相互派生,并且都是在个人级别,以避免不必要的多次计数。查询速度从开始减慢。我通过更改多维数据集解决了这个问题,这比预期的要简单

在“数据源”视图中,我创建了一个命名查询,该查询在人员级别总结了现有事实表。我还导出了我在报告中需要的所有列


将此命名查询视为一个单独的事实表,我为其添加了一个度量值组,这解决了我的所有问题。

我通过更改多维数据集解决了这个问题,这比预期的要简单

在“数据源”视图中,我创建了一个命名查询,该查询在人员级别总结了现有事实表。我还导出了我在报告中需要的所有列

将此命名查询视为一个单独的事实表,我为其添加了一个度量值组,从而解决了所有问题

SCOPE (({[Person].[Staff Code].[Staff Code].MEMBERS}, [Measures].[Has Other Qual]));
    THIS = ([Person].[Staff Code].[Staff Code], [Measures].[Has Other Qual]).Count;
END SCOPE;