在多个维度上的MDX多条件过滤器

问题描述 投票:0回答:1

我相对于MDX来说还比较陌生,大约一个月左右,现在我正在针对我也正在使用的远程多维数据集(Java 8 ActivePivot)编写MDX查询。

此查询在为OR时有效,但是当我添加括号并将第一个OR更改为AND时,它有效,但删除了该度量后会导致CDR和BOOK尺寸正确返回。拥有更多MDX知识的人可以告诉我我错过或尚未知道的内容吗?

WITH 
Member [Measures].[CDR_Label] AS [CDR].[CDR].CURRENTMEMBER.MEMBER_CAPTION  
Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION 
SELECT 
  NON EMPTY 
  {[Measures].[CDR_Label],
  [Measures].[Book_Label],[Measures].[RepoRate.LATEST]} 
ON COLUMNS, 
NON EMPTY 
FILTER(
([CDR].CHILDREN,[Book].CHILDREN), (LEFT([CDR].[CDR].CURRENTMEMBER.MEMBER_CAPTION,1) = "8") AND 
(LEFT([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION,2) = "ST" OR 
RIGHT([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION,4) = "CIES")) 
ON ROWS 
FROM [TraderCube] 
WHERE ([Date].[Date].[2019-10-23])

enter image description here

这里是查询,在我更改它之前,可以使用OR OR等。我希望上面的代码只返回以8开头的CDR,但是它丢失了度量(并且还破坏了我的标头-因为实际上是从xll /自定义Excel函数内部将其触发到调用远程程序的dll中)我正在构建一个非常自定义的插件时,使用AdomdClient程序包创建一个多维数据集-本质上是用户使用简单单词/从所列举的枚举中获得的能力,然后我用C#转换并构造MDX以向该多维数据集发射数据,然后返回2D数组到Excel:))。

WITH 
Member [Measures].[CDR_Label] AS [CDR].[CDR].CURRENTMEMBER.MEMBER_CAPTION  
Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION SELECT NON EMPTY {[Measures].[CDR_Label],[Measures].[Book_Label],[Measures].[RepoRate.LATEST]} 
ON COLUMNS, 
NON EMPTY 
FILTER(
([CDR].CHILDREN,[Book].CHILDREN), 
LEFT([CDR].[CDR].CURRENTMEMBER.MEMBER_CAPTION,1) = "8" OR 
LEFT([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION,2) = "ST" OR 
RIGHT([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION,4) = "CIES") 
ON ROWS 
FROM [TraderCube] 
WHERE ([Date].[Date].[2019-10-23])

enter image description here

mdx cube
1个回答
0
投票

啊...忽略我!

我想我很累,没看到模式。本质上,我只是复制了此内容,如果您要求度量存在的两个维度模式,则会获得您期望的维度(在我的案例3中,是一个真实的度量以及两个伪造的/标签,用于将维度全都包含在内返回行)。

如果没有匹配项,似乎会不带任何度量就将您的要求返回给您,因为尺寸组合中不存在这些度量。

© www.soinside.com 2019 - 2024. All rights reserved.