如何将度量聚合限制为计算成员中的单个维度

How measure aggregation can be restricted to single dimension in calculated member

我有以下查询,其中计算的度量 TotalPNLPercent 显示了个别基金的 % pnl。

With 
Member [Measures].[Fund_NAV] as
([Measures].[NAV_Calculated_IncludingAccruals_CurrentDay],[Fact PNL Data].[Fund].CurrentMember)

Member [Measures].[TotalPNLPercent]
as (
 Case 
    when isempty([Measures].[Fund_NAV]) or [Measures].[Fund_NAV] = 0
    then 0
    else
    ([Measures].[Total MTM PNL] / [Measures].[Fund_NAV])*100
 End
)
select
non empty
{
    [Measures].[TotalPNLPercent],
    [Measures].[Total MTM PNL],
    [Measures].[Fund_NAV]
} on 0,
non empty
{
    [Fact PNL Data].[Fund].[Fund].Members *
//  [Fact PNL Data].[Asset].[Asset].Members*
    [Fact PNL Data].[Rundate].&[2015-02-11T00:00:00]
} on 1
from 
[DSV_NirvanaClientDW]

当我还将资产维度放在行轴中时,[Measures].[Fund_NAV] 根据单个基金中存在的资产进一步拆分数字。我要的是 [措施].[Fund_NAV] 除资金外不应该分开。如果 fund1 有 3 个资产,那么相同的 [Measures].[Fund_NAV] 应该出现对应于 fund1 和资产的 3 个不同行。 当前行为完全合乎逻辑,因为事实 table 与基金和资产维度相关。我不想删除事实 table 和资产之间的关系。 有什么方法可以限制 [Measures].[Fund_NAV] 计算的度量的聚合仅限于 Fund 维度??

如果我没理解错的话,您需要稍微调整一下计算成员的定义。

With 
Member [Measures].[Fund_NAV] as
(
  [Measures].[NAV_Calculated_IncludingAccruals_CurrentDay],
  [Fact PNL Data].[Fund].CurrentMember,
  [Fact PNL Data].[Asset].[All]
)

显式添加 [All] 成员会覆盖 [Fact PNL Data].[Asset] 层次结构中对 当前成员 的隐式引用。