我正在编辑我想要的问题。
我分别从事实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)
我无法在数据源视图级别加入这两个事实并执行 计算那里因为它们是一张非常巨大的表,所以我觉得 表现会很慢。如果你说在做计算 数据源视图级别是我们唯一的方式,请让我 知道。
你有这个吗?
答案 0 :(得分:0)
当计算总计MDX时,总结A,总结B,然后比较它们。
如果您希望计算在行级别进行(检查B> A),则编辑数据源视图并将新计算列添加到度量值组所基于的表中。计算列应为:
CASE WHEN B>A THEN A ELSE B END
然后根据新列创建Sum度量。
与任何完全MDX方法相比,这种方法的表现要好得多,非常详细。如果您的事实表有500,000行或更少,并且您有一个退化的Dimension,它与您需要计算的粒度相同,我们可以在MDX中进行。但是既然你关心SQL查询性能,我假设表格很大。请记住,SQL在处理时完成一次。在查询时在每个查询中计算MDX。所以尽可能在SQL中做昂贵的事情。