MDX计算成员错误

MDX计算成员错误,mdx,data-warehouse,mondrian,Mdx,Data Warehouse,Mondrian,如何创建计算成员?我收到此错误Mondrian错误:成员表达式”筛选器(子体([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].Cu

如何创建计算成员?我收到此错误
Mondrian错误:成员表达式”筛选器(子体([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]

FILTER
返回一个
集合
,并且您已尝试在
WITH
子句中将其分配给
成员

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

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]
与
将[myFilteredSet]设置为
滤器(
子体([User].[User Name].Members),
[User].[User Name].CurrentMember.Properties(“位置”)=“foo”
)
成员[度量][userRank]为
等级(
[用户].[用户名].CURRENTMEMBER,
[myFilteredSet],

[措施][现有措施]//您希望在最终报告中看到什么?多个用户作为单独的列?还是从满足筛选条件的所有用户计算出的单个列值?在后一种情况下,应该计算什么?感谢您的深入了解。但是如何将
Rank
函数应用于返回的成员?我打算检索一些成员基于筛选器,然后根据度量值对成员进行排序将筛选后的集合放入rank函数-我将添加一个尝试