2017-02-05 119 views
0

我创建了一个查询,它可以计算销售额的方差水平和方差百分比。但是,每当我尝试对CostSales度量进行测试时,我的查询都会返回NULL!并行销售额变动期MDX

IIF(

    IsEMPTY(
      (
      ParallelPeriod 
        (
        [Time].[CalendarSales].[CalendarYear], 
        1, 
        [Time].[CalendarSales].CurrentMember 
        ),[Measures].[CostSales] 
      ) 
     ) 
OR 
      (
      ParallelPeriod 
        (
        [Time].[CalendarSales].[CalendarYear], 
        1, 
        [Time].[CalendarSales].CurrentMember 
        ),[Measures].[CostSales] 
      )=0 
, 
0, 
[Measures].[ParallelPeriodFactSalesVariance]/[Measures].[ParellelPeriodFactSales] 
) 

任何想法,我在做什么错在这里?

+0

那个calc的名字是什么? [Measures]的定义是什么?[ParallelPeriodFactSalesVariance]和[Measures]。[ParellelPeriodFactSales]? – GregGalloway

+0

ParellelPeriodFactSales计算公式为销售金额加上并行期间互联网销售金额,从同一个月的1个月开始计算。而第二个[Measures]。[CostSales] - [Measures]。[ParallelPeriodFactSales] – Dodi

回答

1

如果您没有收到返回0,那么我认为有一个与[Measures].[ParallelPeriodFactSalesVariance]/[Measures].[ParellelPeriodFactSales]

两个诊断问题,您可以运行是:

1.更改整个措施是:

IIF(

    IsEMPTY(
      (
      ParallelPeriod 
        (
        [Time].[CalendarSales].[CalendarYear], 
        1, 
        [Time].[CalendarSales].CurrentMember 
        ),[Measures].[CostSales] 
      ) 
     ) 
OR 
      (
      ParallelPeriod 
        (
        [Time].[CalendarSales].[CalendarYear], 
        1, 
        [Time].[CalendarSales].CurrentMember 
        ),[Measures].[CostSales] 
      )=0 
, 
0, 
999 
) 

我会想象999正在返回。如果是,则尝试将自定义成员更改为:

[Measures].[ParallelPeriodFactSalesVariance]/[Measures].[ParellelPeriodFactSales] 

现在是否返回NULL?所以这就是问题所在 - 但正如格雷格的评论所表明的,我们需要看到这两个措施的代码 - 同样,由于上下文很重要,我们可以通过查看代码被使用的完整脚本来完成。

+0

我已经按照您的建议更改了整个度量,并且它已运行。然后,我添加了最后一个代码:[Measures]。[ParallelPeriodFactSalesVariance]/[Measures]。[ParellelPeriodFactSales],并且令人惊讶的是代码的功能非常魅力。非常感谢您的回复,并感谢Greg的澄清。 – Dodi

+0

好 - 上面只是作为诊断 - 愉快地感到惊讶它为你工作作为答案 – whytheq

+0

我认为该解决方案没有正确部署工作。我实现了你发送的代码,然后部署它。然后,我通过更改最后一个代码并将其更改为我之前的代码,并运行了部署按钮并且它能够工作再次感谢 – Dodi

相关问题