繁体   English   中英

MDX基于IF且大于

[英]MDX Calculated measure based on IF and greater than

我正在编辑我想要的问题。

我有两列实际单位 ,分别是事实A和事实B的未来单位 ,但粒度相同。我也有事实B的需求单位

我的要求是:

1. Projected Units = Coalesce(Actual Units,Future Units)    
2. Stock Units = IF(Projected Units > Demand Units,Demand Units,Projected 
Units)
3. Stock Rate = (Stock Units/Demand Units)    

在此处输入图片说明

我无法在数据源视图级别加入这两个事实,并且
因为那里有一个非常大的表,所以我认为性能会很慢。 如果您说在数据源视图级别进行计算是我们唯一的方法,请告诉我。

你明白了吗?

在计算总计MDX时,要对A求和,对B求和,然后对它们进行比较。

如果您希望计算在行级别进行(检查B> A),则编辑“数据源视图”,并将新的计算列添加到度量值组所基于的表中。 计算列应为:

CASE WHEN B>A THEN A ELSE B END

然后根据该新列创建求和度量。

与以非常详细的粒度进行计算的任何完全MDX方法相比,该方法的性能要好得多。 如果事实表的行数为500,000或更少,并且退化的Dimension与需要计算的粒度相同,则可以在MDX中进行操作。 但是由于您担心SQL查询的性能,所以我假设表很大。 只要记住,SQL在处理时就执行一次。 MDX是在查询时间在每个查询中计算的。 因此,您可以使用SQL进行昂贵的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM