0
我真的很新的MDX,但我花了两天来寻找一个答案,但失败了。所以我非常感谢您的帮助和耐心。添加多个计算过滤器MDX
我试图用多个维度上的过滤器来查询多维数据集,并且我意识到已经存在许多类似的问题,例如this或this。
的事情是不是指定我找的,我试图建立拾取以特定字符串开头的所有记录过滤特定的内容。这需要在滤波器中使用left
函数(即计算滤波器?),但我无法将它们很好地融入代码中。
我的失败代码是这样的(两个过滤器应该在AND
关系)
Select Non Empty ([Measures].[Sales]) ON 0
FROM [Cube_Name]
WHERE
(
FILTER
(
[Customer].[CustomerID].Members, Left([Customer].[CustomerID].CurrentMember.Name,4)="ABCD"),
[Product].[ProductID].Members, Left([Product].[ProductID].CurrentMember.Name,3)="EFG")
)
)
(我的审判是根据最后的答案here。)
我也看了,有一些解决方法就像CROSSJOIN
WITH
AGGREGATE
或子SELECT
,但我只是没有在1任何线索)如何把里面的条件; 2)表现(听说CROSSJOIN
可以慢)。
我不知道我是否应该在这里提到它,但我实际使用ADOMB.Cellset
对象实现从Excel VBA的MDX。它只是给了我总计我Cellset.Items(0)
下执行的查询(没有更多的项目)。
谢谢!
谢谢Danylo!你的代码完美无缺!你介意告诉我关于如何在过滤器中加入OR子句的更多事情吗? 我尝试修改所述第二过滤器进入 '筛选( [产品]。[产品id]。[产品id] .Members, 左( [产品]。[产品id] .CurrentMember.Name,) =“EFG”OR Left( [Product]。[ProductID] .CurrentMember.Name,)=“HIJ” )' 但它不起作用。谢谢! – Aster37a
对不起,OR连接起作用。这只是我输入错误信息中的一个错误。但是再次感谢您的及时和准确的回应! – Aster37a
很高兴知道,不要忘记标记答案。 –