Ssas 是否有方法指定或强制计算成员的数据类型?

Ssas 是否有方法指定或强制计算成员的数据类型?,ssas,mdx,olap,adomd.net,mdxclient,Ssas,Mdx,Olap,Adomd.net,Mdxclient,我已经将多维数据集中每个度量值的数据类型指定为Currency。 我还得到了计算成员,其中一些成员具有iifisempty[Measures].[Measure1]或[Measures].[Measure1]=0,null,100*[Measures].[Measure2]/[Measures].[Measure1]逻辑 我使用内部使用的方法访问这个多维数据集,并注意到其中一些计算成员返回的是xsd:double而不是xsd:decimal。因此,我假设它们是按双倍计算的,而不是按货币计算的。查

我已经将多维数据集中每个度量值的数据类型指定为Currency。 我还得到了计算成员,其中一些成员具有iifisempty[Measures].[Measure1]或[Measures].[Measure1]=0,null,100*[Measures].[Measure2]/[Measures].[Measure1]逻辑

我使用内部使用的方法访问这个多维数据集,并注意到其中一些计算成员返回的是xsd:double而不是xsd:decimal。因此,我假设它们是按双倍计算的,而不是按货币计算的。查询结果映射到客户端的强类型数据集,所以返回的类型对我来说很重要

我可以通过用VBA包装每个计算成员来“强制”SSA返回xsd:decimal!CDec或仅CDec,但这会严重降低性能


有没有更聪明的方法来设置或强制计算成员成为货币?或者至少由AdomdCommand.ExecuteXmlReader返回xsd:decimal?

我认为无法设置计算度量值的数据类型。数据类型将根据计算中使用的度量以及正在执行的计算类型进行分配。

计算成员的代码如下:

MEMBER [Measures].[CurrencyMeasure] 
AS
iif(isempty([Measures].[Measure1]) or 
[Measures].[Measure1] = 0, null, 
100 * [Measures].[Measure2] / [Measures].[Measure1]), FORMAT_STRING="Currency"

谢谢,但您讨论的是格式字符串,而不是计算成员的数据类型。