MDX 确定度量值是数字还是百分比值
MDX determine if measure is a number or percentage value
有没有办法确定度量值是数字还是百分比?
我在 excel 主元中有一个计算成员,其中从当前年份值中减去上一年的值得到方差。
计算示例:
[Product Date].[Fiscal Date].&[1415]-[Product Date].[Fiscal Date].&[1314]
我想做的是获取方差百分比,为此我只需要从当前的百分比值中减去上一年的值。当该值为数字时,我需要从当前值中减去上一年的值,然后将其除以上一年的值。
那么有没有办法确定我什么时候需要除以该值或只做减法?
SSAS 引擎不使用 %
运算符存储百分比值。也就是说,不存在"percentage".
这样的数据类型
因此,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
子句中额外检查度量值。
有没有办法确定度量值是数字还是百分比?
我在 excel 主元中有一个计算成员,其中从当前年份值中减去上一年的值得到方差。
计算示例:
[Product Date].[Fiscal Date].&[1415]-[Product Date].[Fiscal Date].&[1314]
我想做的是获取方差百分比,为此我只需要从当前的百分比值中减去上一年的值。当该值为数字时,我需要从当前值中减去上一年的值,然后将其除以上一年的值。
那么有没有办法确定我什么时候需要除以该值或只做减法?
SSAS 引擎不使用 %
运算符存储百分比值。也就是说,不存在"percentage".
因此,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
子句中额外检查度量值。