MDX确定度量是数字还是百分比值

时间:2015-09-07 23:36:45

标签: mdx

有没有办法确定度量值是数字还是百分比?

我在excel枢轴中有一个计算成员,其中从当前年份值中减去上一年的值,以便给出方差。

calc的例子:

[Product Date].[Fiscal Date].&[1415]-[Product Date].[Fiscal Date].&[1314]

我想要做的是得到方差百分比并且这样做我只需要从百分比中减去前一年的当前值。当值为数字时,我需要从当前值中减去上一年的值,然后将其除以上一年的值。

那么有没有办法确定何时需要除以值或只进行减法?

1 个答案:

答案 0 :(得分:0)

SSAS引擎不会使用%运算符存储百分比值。换句话说,没有“百分比”这样的数据类型。

因此,85%在引擎内存储为0.85。

没有好的方法可以查看0.85并确定它是85%还是值.85。所以,如果在你的情况下,值可能是小数,祝你好运! 但是,如果它们总是成为整数,那么可以使用一个小的黑客(我最近从GregGalloway's answer学到的)。

with member measures.MeasureType as
TypeName([Measures].[SomeMeasure])

member measures.ActionTakenOnSomeMeasure as
IIF
 (
  measures.MeasureType = "Double", //Check if the value is double, i.e. Percentage
  [Measures].[SomeMeasure] - ([Date].[Year].currentmember.prevmember, [Measures].[SomeMeasure]),
  ([Measures].[SomeMeasure] - ([Date].[Year].currentmember.prevmember, [Measures].[SomeMeasure]))/([Date].[Year].currentmember.prevmember, [Measures].[SomeMeasure])
 )

select measures.ActionTakenOnSomeMeasure on 0,
[Date].[Year].&[2014]
from [SomeCube]

也可能存在值通常大于1的情况。在这种情况下,您可以在IIF子句中另外检查度量的值。