【问题标题】:MDX calculated member errorMDX 计算的成员错误
【发布时间】:2014-11-05 16:24:12
【问题描述】:

怎样才能做一个计算会员?我收到此错误Mondrian Error:Member expression 'Filter(Descendants([User].[User Name].Members), ([User].[User Name].CurrentMember.Properties("location") = 'foo')) 不能是集合

WITH MEMBER [Measures].[some users] AS
Filter(
  Descendants([User].[User Name].Members), 
  [User].[User Name].CurrentMember.Properties("location") = 'foo'
 )  
)

SELECT
 NON EMPTY {[Measures].[some users]} ON COLUMNS,
 NON EMPTY CrossJoin(
   [Date].[Date].Members, 
   [Customer].[Customer Name].Members
  ) ON ROWS

FROM [Users]

【问题讨论】:

  • 您希望在最终报告中看到什么?几个用户作为单独的列?还是从满足过滤条件的所有用户计算出的单列值?后一种情况,应该计算什么?

标签: mdx data-warehouse mondrian


【解决方案1】:

FILTER 返回一个SET,而您尝试在WITH 子句中将其分配给MEMBER

这应该可以,但没有指定度量,因此您将获得默认度量:

SELECT
 NON EMPTY 
{Filter(
  Descendants([User].[User Name].Members), 
  [User].[User Name].CurrentMember.Properties("location") = 'foo'
 ) } 
ON COLUMNS,
 NON EMPTY CrossJoin(
   [Date].[Date].Members, 
   [Customer].[Customer Name].Members
  ) ON ROWS

FROM [Users];

您可以在WHERE 子句中决定一个措施:

SELECT
 NON EMPTY 
{Filter(
  Descendants([User].[User Name].Members), 
  [User].[User Name].CurrentMember.Properties("location") = 'foo'
 ) } 
ON COLUMNS,
 NON EMPTY CrossJoin(
   [Date].[Date].Members, 
   [Customer].[Customer Name].Members
  ) ON ROWS

FROM [Users]
WHERE [Measures].[aMeasureThatFitsContext];

使用RANK 的示例。只是有点不确定这是否适合您的原始脚本?

WITH 
  SET [myFilteredSet] AS 
    Filter(
      Descendants([User].[User Name].Members), 
      [User].[User Name].CurrentMember.Properties("location") = 'foo'
    )
  MEMBER [Measures].[userRank] AS
    RANK(
      [User].[User Name].CURRENTMEMBER,
      [myFilteredSet],
      [Measures].[EXISTING_MEASURE] //<<this is the measure you are ordering by  
    ) 
SELECT
 NON EMPTY 
   {[Measures].[EXISTING_MEASURE],[Measures].[userRank] } 
 ON COLUMNS,
 NON EMPTY 
   [myFilteredSet] 
 ON ROWS
FROM [Users]

【讨论】:

  • 感谢您的洞察力。但是如何将Rank 函数应用于返回的成员?
  • 我打算根据过滤器检索一些成员,然后根据度量对成员进行排名
  • 将过滤后的集合输入 Rank 函数 - 我会添加一个尝试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
相关资源
最近更新 更多