以下查询
SELECT { [Measures].[Comp Money In] } ON COLUMNS, { ( [Dim User].[UserLevel1].[UserLevel1].AllMembers * [Dim User].[UserLevel2].[UserLevel2].AllMembers * [Dim User].[UserLevel3].[UserLevel3].AllMembers * [Dim User].[UserLevel4].[UserLevel4].AllMembers * [Dim User].[UserLevel5].[UserLevel5].AllMembers ) } ON ROWS FROM [Activities] WHERE ( [Dim User].[UserIdHierarchy].[UserLevel1Id].&[#513], [Dim User].[UserTypeHierarchy].[UserTypeLevel1].&[Commercial Partner].&[Agent] ) CELL Properties Value
得出以下结果:
我的问题在于,由于我正在过滤[Dim User]。[UserTypeHierarchy],所显示的度量值仅为具有[商业伙伴]类型的度量值。& [Agent] 。我希望即使我显示用户树,显示的数字也会显示所有度量,就好像它就像后代一样([Hierarchy],0,self_and_after)。
我如何实现这一目标?我已尝试使用计算成员,但显示的数字并未聚合[Dim User]。[UserTypeHierarchy]层次结构下所有用户类型的后代。
为了更好地解释自己,下面的图片没有用户类型过滤器:
所以我想要的结果,是第一张图片,我只显示用户类型商业伙伴的用户,但是第二张图片的数字,例如
所以第四个。
答案 0 :(得分:3)
[活动]多维数据集未正确设置。查询一个级别时,它应显示自身及其子级的值(例如“Country Shop 1”应显示19)。这应该是多维数据集中聚合规则的一部分。现在在多维数据集的父母中显示的值(例如,国家商店1€6)应显示在另一个自动创建的休息组中,作为每个父母的附加子项。
因此,这个多维数据集的简单MDX将是:
SELECT {
[Measures].[In]
} ON COLUMNS,
{
DESCENDANTS([Dim User].[UserTypeHierarchy].[UserTypeLevel1],0,SELF_AND_AFTER)
}
from [Activities]
将向所有地区,国家和商店显示正确的汇总值。
电贺 菲尔
答案 1 :(得分:0)
这是解决方案:
WITH MEMBER [Measures].[Test] AS 0 SELECT { [Test] } ON 0, NON EMPTY { filter ( {[dim user].[userhierarchy].[userlevel1].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), filter ( {[dim user].[userhierarchy].[userlevel2].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), filter ( {[dim user].[userhierarchy].[userlevel3].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), filter ( {[dim user].[userhierarchy].[userlevel4].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), filter ( {[dim user].[userhierarchy].[userlevel5].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), filter ( {[dim user].[userhierarchy].[userlevel6].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), filter ( {[dim user].[userhierarchy].[userlevel7].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), filter ( {[dim user].[userhierarchy].[userlevel8].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), filter ( {[dim user].[userhierarchy].[userlevel9].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ), filter ( {[dim user].[userhierarchy].[userlevel10].allmembers } ,[dim user].[userhierarchy].currentmember.children.count > 1 ) } ON 1 FROM [Activities]
我没有按父用户类型进行过滤,而是将那些子项数大于1的用户调出来。