MDX 查询有效但忽略了 EXCEPT 子句
MDX query works but ignores the EXCEPT clause
我一直在开发自定义 dll(通过自定义 xll / Excel 插件调用)来构建 MDX 和 return 二维数据。
它运行良好,我刚刚开始研究如何添加使用 EXCEPT 发送排除列表的功能。
我建立了一个带过滤的查询,这个查询有效,除了它忽略了 EXCEPT。有比我拥有更多 MDX 的人(我大约 2 个月在哈哈 :))知道为什么吗?
谢谢
李
WITH
Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION
Member [Measures].[Isin_Label] AS [Isin].[Isin].CURRENTMEMBER.MEMBER_CAPTION
SELECT
NON EMPTY
{[Measures].[Book_Label],[Measures].[Isin_Label],[Measures].[Notional.SUM]}
ON COLUMNS,
NON EMPTY ORDER
(
EXCEPT(
FILTER(
([Book].CHILDREN,[Isin].CHILDREN),
([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION = "ALGO1")
),
[Isin].[Isin].[DE0001104776]),
[Notional.SUM]
,
BASC)
ON ROWS
FROM[TraderCube]
WHERE ([Date].[Date].[2019-11-18])
这是两个月内取得的不错进步。一个谦虚的建议,您应该始终用简单的词以及到目前为止开发的代码来说明您的问题。这有助于回答的人。
形成你的代码,我的理解是你想要 "ALGO1" 本书,其中包含 [ISin] 的所有成员,除了成员 "DE0001104776"。基于这种理解使用下面的代码
NON EMPTY
ORDER
(
([Book].[Book].[ALGO1],{[Isin].[Isin].children-[Isin].[Isin].[DE0001104776]}),
[Notional.SUM],
BASC
)
我返回尝试将我目前正在使用的 1..n FILTER 生成器与 EXCEPT(应业务要求)结合使用。不幸的是,尽管查询通过了语法检查并执行,正如原始 post 中所报告的那样,cube/server 忽略了它。
我刚刚尝试在我的 FILTER 中添加一个 <> 并且成功了! :)
举个例子。
WITH
Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION
Member [Measures].[Isin_Label] AS [Isin].[Isin].CURRENTMEMBER.MEMBER_CAPTION
SELECT
NON EMPTY {[Measures].[Book_Label],[Measures].[Isin_Label],[Measures].[Notional.SUM]}
ON COLUMNS,
NON EMPTY
ORDER(
FILTER(
([Book].CHILDREN,[Isin].CHILDREN),
(([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION = \"ALGO1\") AND
([Isin].[Isin].CURRENTMEMBER.MEMBER_CAPTION <> \"DE0001102309\"))
),[Notional.SUM],
BASC)
ON ROWS
FROM[TraderCube]
WHERE([Date].[Date].[2019-11-21])
我一直在开发自定义 dll(通过自定义 xll / Excel 插件调用)来构建 MDX 和 return 二维数据。
它运行良好,我刚刚开始研究如何添加使用 EXCEPT 发送排除列表的功能。
我建立了一个带过滤的查询,这个查询有效,除了它忽略了 EXCEPT。有比我拥有更多 MDX 的人(我大约 2 个月在哈哈 :))知道为什么吗?
谢谢
李
WITH
Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION
Member [Measures].[Isin_Label] AS [Isin].[Isin].CURRENTMEMBER.MEMBER_CAPTION
SELECT
NON EMPTY
{[Measures].[Book_Label],[Measures].[Isin_Label],[Measures].[Notional.SUM]}
ON COLUMNS,
NON EMPTY ORDER
(
EXCEPT(
FILTER(
([Book].CHILDREN,[Isin].CHILDREN),
([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION = "ALGO1")
),
[Isin].[Isin].[DE0001104776]),
[Notional.SUM]
,
BASC)
ON ROWS
FROM[TraderCube]
WHERE ([Date].[Date].[2019-11-18])
这是两个月内取得的不错进步。一个谦虚的建议,您应该始终用简单的词以及到目前为止开发的代码来说明您的问题。这有助于回答的人。
形成你的代码,我的理解是你想要 "ALGO1" 本书,其中包含 [ISin] 的所有成员,除了成员 "DE0001104776"。基于这种理解使用下面的代码
NON EMPTY
ORDER
(
([Book].[Book].[ALGO1],{[Isin].[Isin].children-[Isin].[Isin].[DE0001104776]}),
[Notional.SUM],
BASC
)
我返回尝试将我目前正在使用的 1..n FILTER 生成器与 EXCEPT(应业务要求)结合使用。不幸的是,尽管查询通过了语法检查并执行,正如原始 post 中所报告的那样,cube/server 忽略了它。
我刚刚尝试在我的 FILTER 中添加一个 <> 并且成功了! :)
举个例子。
WITH
Member [Measures].[Book_Label] AS [Book].[Book].CURRENTMEMBER.MEMBER_CAPTION
Member [Measures].[Isin_Label] AS [Isin].[Isin].CURRENTMEMBER.MEMBER_CAPTION
SELECT
NON EMPTY {[Measures].[Book_Label],[Measures].[Isin_Label],[Measures].[Notional.SUM]}
ON COLUMNS,
NON EMPTY
ORDER(
FILTER(
([Book].CHILDREN,[Isin].CHILDREN),
(([Book].[Book].CURRENTMEMBER.MEMBER_CAPTION = \"ALGO1\") AND
([Isin].[Isin].CURRENTMEMBER.MEMBER_CAPTION <> \"DE0001102309\"))
),[Notional.SUM],
BASC)
ON ROWS
FROM[TraderCube]
WHERE([Date].[Date].[2019-11-21])