[英]MDX Query using DistinctCount, Except as a filter
我是MDX查询的新手,正在尝试创建一个使用Except的查询。 我目前有一个在使用一堆OR进行过滤时可以正常工作的方法,但是速度非常慢。
我想做的是计数不同的延期交货行(不等于0),除非设置了2个老化代码。 ( 050
和060
)。
该查询似乎可以工作,但是非常慢(不使用except)
DISTINCTCOUNT(filter([Product].[Segment - Line - Types].[Product].members,
(([Measures].[BackOrderLineCount], [Aging].[AgingCode].[Aging].&[005] ) OR
([Measures].[BackOrderLineCount], [Aging].[AgingCode].[Aging].&[010] )OR
([Measures].[BackOrderLineCount], [Aging].[AgingCode].[Aging].&[020] )OR
([Measures].[BackOrderLineCount], [Aging].[AgingCode].[Aging].&[030] )OR
([Measures].[BackOrderLineCount], [Aging].[AgingCode].[Aging].&[040] ))))
我希望如果将其切换为“ EXCEPT”,它将加快速度...
任何帮助将不胜感激,我一直在寻找这一天。
您实际上不需要为此使用FILTER
函数。 另外,减号运算符与EXCEPT
一样好,但更方便。 您应该看一下具有延期交货价的产品和老化代码的元组。
DISTINCTCOUNT([Product].[Segment - Line - Types].[Product].members *
NonEmpty(
([Aging].[AgingCode].[Aging].CHILDREN - {[Aging].[AgingCode].[Aging].&[50], [Aging].[AgingCode].[Aging].&[60]}),
[Measures].[BackOrderLineCount])
)
的NonEmpty
函数返回具有回订单行老化的那些代码。
如果必须使用EXCEPT
,则代码如下所示:
EXCEPT
(
[Aging].[AgingCode].[Aging].CHILDREN, {[Aging].[AgingCode].[Aging].&[50], [Aging].[AgingCode].[Aging].&[60]}
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.