MDX命令中的问题或操作

MDX命令中的问题或操作,mdx,Mdx,我正在尝试对具有WHERE Group a或Group B语法的多维数据集运行基本查询。我根据联机文章尝试了以下代码,其中where命令需要列表,但它无法识别列表: SELECT FROM [Ticket] WHERE ([Analyst].[Group Name].&[IS Epic Service Desk],[Analyst].[Group Name].&[IS Service Desk]) 在当前状态下,它给出了一个错误,即我试图在同一交叉连接中多次使用同一层次结构。

我正在尝试对具有WHERE Group a或Group B语法的多维数据集运行基本查询。我根据联机文章尝试了以下代码,其中where命令需要列表,但它无法识别列表:

SELECT FROM [Ticket] 
WHERE ([Analyst].[Group Name].&[IS Epic Service Desk],[Analyst].[Group Name].&[IS Service Desk])
在当前状态下,它给出了一个错误,即我试图在同一交叉连接中多次使用同一层次结构。我尝试添加{}以隔离语句,但收到一个超出范围的错误

最终目标是返回is Epic Service Desk和is Service Desk在同一列表中的匹配项的查询。

WHERE子句中的向analysis services指示要指定元组,元组是多维数据集空间中的单个点。因此,无法使用同一层次结构的两个成员定义作为多维数据集中单个点的错误消息

所以我们知道这没关系:

SELECT
... 
FROM [Ticket] 
WHERE ([Analyst].[Group Name].&[IS Epic Service Desk]);
事实上:

SELECT
... 
FROM [Ticket] 
WHERE ([Analyst].[Group Name].&[IS Service Desk]);
您提到使用{}是正确的。我有点不确定这些大括号放在哪里,但应实现以下功能或逻辑:

通常在布尔逻辑中,或者平均值是X,或者是Y,或者是X和Y。我有点不确定这个定义是否与你问题的最后一句一致

最终目标是为is Epic服务台返回匹配项的查询 服务台在同一个列表中

以上内容听起来更像是逻辑和逻辑,因此您只需要Epic Service Desk和Service Desk中的数据。如果是这种情况,那么级联非空表达式就足够了:

SELECT
... 
FROM [Ticket] 
WHERE (
  {
    NonEmpty(
      NonEmpty(
         [Customer].[Customer].[Customer].MEMBERS
        ,[Analyst].[Group Name].&[IS Service Desk]
      )
   ,[Analyst].[Group Name].&[IS Epic Service Desk]
   )
 );
SELECT
... 
FROM [Ticket] 
WHERE (
  {
    NonEmpty(
      NonEmpty(
         [Customer].[Customer].[Customer].MEMBERS
        ,[Analyst].[Group Name].&[IS Service Desk]
      )
   ,[Analyst].[Group Name].&[IS Epic Service Desk]
   )
 );