我对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])
这里是我更改它之前的查询,可以使用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])
答案 0 :(得分:0)
啊...忽略我!
我认为我很累,没有看到图案。从本质上讲,我只是复制了此内容,如果您要求一个度量存在两个维度模式,则会获得您期望的维度(在我的案例3中,是一个真实的度量以及两个伪造的/标签,用于使维度全部实现返回行)。
如果没有匹配项,则似乎会不带任何度量就将您的要求返回给您,因为尺寸组合中不存在这些度量。