我一直在研究自定义dll(通过自定义xll / Excel插件调用)来构造MDX并返回2D数据。
效果很好,我只是想出如何添加使用EXCEPT发送排除列表的功能。
我建立了一个带过滤的查询,该查询有效,但它忽略了EXCEPT。 MDX比我多的人(我在哈哈大约2个月了:)知道原因吗?
谢谢
Leigh
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])
两个月来进展不错。一个卑鄙的忠告,您应该始终用简单的文字说明问题,以及到目前为止开发的代码。这有助于该人回答。
[形成您的代码,我的理解是,您希望与[ISin]的所有成员(除成员“ DE0001104776”以外的所有成员一起使用“ ALGO1”书籍。基于这种理解,请使用下面的代码
NON EMPTY
ORDER
(
([Book].[Book].[ALGO1],{[Isin].[Isin].children-[Isin].[Isin].[DE0001104776]}),
[Notional.SUM],
BASC
)
我返回尝试将当前正在使用的1..n FILTER构建器与EXCEPT结合使用(业务要求)。不幸的是,尽管查询通过了语法检查并执行了,但正如原始文章中所报告的那样,多维数据集/服务器忽略了它。
我只是尝试在我的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])