Filter 在MDX中添加多个计算过滤器
我对MDX真的很陌生,但我花了两天时间寻找答案,但都失败了。所以我非常感谢你的帮助和耐心 我试图用多维过滤器查询一个立方体,我意识到已经有很多类似的问题,比如or 问题是,我没有指定我要查找的特定内容,而是尝试设置过滤器,以拾取以特定字符串开头的所有记录。这需要过滤器中的Filter 在MDX中添加多个计算过滤器,filter,ssas,mdx,Filter,Ssas,Mdx,我对MDX真的很陌生,但我花了两天时间寻找答案,但都失败了。所以我非常感谢你的帮助和耐心 我试图用多维过滤器查询一个立方体,我意识到已经有很多类似的问题,比如or 问题是,我没有指定我要查找的特定内容,而是尝试设置过滤器,以拾取以特定字符串开头的所有记录。这需要过滤器中的left函数(即计算过滤器?),但我无法将它们很好地混合到代码中 我的失败代码如下所示(两个过滤器应处于和关系中) (我的试验基于最后一个答案。) 我还了解到有一些解决方法,如使用聚合或子选择,交叉连接,但我不知道1)如何将条件
left
函数(即计算过滤器?),但我无法将它们很好地混合到代码中
我的失败代码如下所示(两个过滤器应处于和关系中)
(我的试验基于最后一个答案。)
我还了解到有一些解决方法,如使用
聚合
或子
选择,交叉连接,但我不知道1)如何将条件合并到内部;2) 性能(我听说,CROSSJOIN
可能很慢)
我不确定我是否应该在这里提到它,但我实际上是通过使用ADOMB.Cellset
对象从ExcelVBA实现MDX的。它只给出我在Cellset.Items(0)
下实现的查询的总数(没有更多的项)
谢谢大家! 您需要将两个集合拆分为两个过滤器:
Select
Non Empty [Measures].[Sales] on 0
From [Cube_Name]
Where
(
Filter(
[Customer].[CustomerID].[CustomerID].Members,
Left(
[Customer].[CustomerID].CurrentMember.Name,
4
) = "ABCD"
),
Filter(
[Product].[ProductID].[ProductID].Members,
Left(
[Product].[ProductID].CurrentMember.Name,
3
) = "EFG"
)
)
谢谢你,丹妮洛!你的代码工作得很好!您介意再告诉我一件关于如何在筛选器中合并OR子句的事情吗?我试图将第二个筛选器修改为筛选器([Product].[ProductID].[ProductID]。成员,左([Product].[ProductID].CurrentMember.Name,3)=“EFG”或左([Product].[ProductID].CurrentMember.Name,3)=“HIJ”)
。非常感谢。很抱歉,或连词似乎有效。这只是我的一个打字错误导致了错误信息。但再次感谢您及时准确的回复!
Select
Non Empty [Measures].[Sales] on 0
From [Cube_Name]
Where
(
Filter(
[Customer].[CustomerID].[CustomerID].Members,
Left(
[Customer].[CustomerID].CurrentMember.Name,
4
) = "ABCD"
),
Filter(
[Product].[ProductID].[ProductID].Members,
Left(
[Product].[ProductID].CurrentMember.Name,
3
) = "EFG"
)
)