Ssas 显示行| SSA、MDX上没有数据的项目

Ssas 显示行| SSA、MDX上没有数据的项目,ssas,mdx,Ssas,Mdx,执行一项任务,该任务要求将维度的所有数据放入透视表(Excel工作表),即使这些数据与事实无关 首先,我可以使用Excel中的选项“数据透视表选项”->“显示”->“显示行上没有数据的项”。这里的问题是,使用此选项将影响其他维度,要求仅对学生维度执行此操作,并且用户不希望每次都继续更改此选项。然后,我在下面找到了使用范围的解决方案,但就像上面一样,如果添加了任何其他维度,我无法找到一个方法让范围忽略逻辑,这样数据就不会被复制 SCOPE ([Program].[Program Hierarchy

执行一项任务,该任务要求将维度的所有数据放入透视表(Excel工作表),即使这些数据与事实无关

首先,我可以使用Excel中的选项“数据透视表选项”->“显示”->“显示行上没有数据的项”。这里的问题是,使用此选项将影响其他维度,要求仅对学生维度执行此操作,并且用户不希望每次都继续更改此选项。然后,我在下面找到了使用范围的解决方案,但就像上面一样,如果添加了任何其他维度,我无法找到一个方法让范围忽略逻辑,这样数据就不会被复制

SCOPE ([Program].[Program Hierarchy].MEMBERS, [Measures].[Number of Students]); 
THIS = IIF(ISEMPTY([Measures].[Number of Students]), 0, ([Measures].[Number of Students])); 
END SCOPE; 
那么,我是否可以将上面的范围添加到program维度中,并在pivot表中添加任何其他维度时获得ignore/skip和正常工作


如果您有任何建议,我们将不胜感激。

假设对于维度1、属性1和属性“值1”,您实际上什么都没有,因此这将从结果中删除,现在您通过选择该选项强制Excel显示它。当您添加另一个维度的属性时,可以说是Dimension2.Attribute1,因为“Value 1”实际上没有任何内容,所以多维数据集无法理解Dimension2.Attribute1的哪个值将显示在Dimension1.Attribute1之前,因此它将显示其所有值。因此,如果在维度2中有3个值,属性1,那么“值1”将重复三次。现在使用Excel无法解决这个问题,但是可以编写一个有效的MDX查询

编辑:添加查询

下面的示例查询基于AdventureWorks,第一个示例显示结果有一些空值,如果我取消注释“non-empty”所有空值都将消失,请继续尝试

select [Measures].[Internet Sales Amount] on columns,
--non empty
[Product].[Subcategory].[Subcategory]
on rows 
from 
[Adventure Works]
结果没有非空

现在,让我们向查询添加另一个维度。请注意,第一行(Bib shorts)的空值现在对第二维度的所有值都重复,因为多维数据集无法确定要显示的值

select [Measures].[Internet Sales Amount] on columns,
--non empty
([Product].[Subcategory].[Subcategory],[Date].[Calendar Quarter of Year].[Calendar Quarter of Year])
on rows 
from 
[Adventure Works]
结果

现在,上面的结果显示了您所面临的问题。我们现在需要做的是,只要有一个空值,我们就不需要第二维度的单个成员,而是一个满足元组的占位符

在下面的查询中,我有两个元组 1) 对于非空数据点。这里我们显示第二维度的实际成员。 2) 对于空数据点,这里我们使用“.defaultmember”,这基本上意味着第二个维度将表现为从未被选中。仔细看看第二个维度,上面写着“所有周期”

结果:


谢谢你回复我。实际上,我开始使用下面的MDX查询,但我试图找到一种方法,在添加任何其他维度并使多维数据集正常工作时忽略范围逻辑。范围([Program].[Program Hierarchy]。成员,[Measures].[Number of Student]);这=IIF(i空([Measures].[Number of student]),0,([Measures].[Number of student]);终端范围@穆罕默德·哈马德,欢迎来到MDX,你的问题不是范围声明。即使没有scope语句,当事实中缺少一个值并显示它时,也会与所有其他维度的值自然交叉连接。谢谢,Moaz,你有这样的例子吗?干杯@穆罕默德·哈马德:我现在没有,但是我可以试着找一个。请,我真的很感激。另外,如果没有工作,请告诉我。
select [Measures].[Internet Sales Amount] on columns,
--non empty 
{filter(([Product].[Subcategory].[Subcategory],[Date].[Calendar Quarter of Year].[Calendar Quarter of Year]),[Measures].[Internet Sales Amount]>0),
filter(([Product].[Subcategory].[Subcategory],[Date].[Calendar Quarter of Year].defaultmember),[Measures].[Internet Sales Amount]=null)
}
on rows 
from 
[Adventure Works]