我在SSAS,MSSQL 2012中的MDX查询有点问题。
假设我们有[产品]维度。在此维度中,存在[Business Number]属性,AttributeHierarchyEnabled设置为false。它仅取决于名为[Product]的主键。我想在查询中获取商家编号(例如按产品销售)。我知道如何做到这两点:
WITH MEMBER [Measures].[BusinessNumber]
AS [Products].[Product].currentmember.properties("Business Number")
SELECT [Measures].[BusinessNumber] ON 0
...
或
...
[Products].[Product].ALLMEMBERS
DIMENSION PROPERTIES [Products].[Product].[Business Number]
ON 1
...
但我也希望得到格式化的值。业务号码应始终有六位数(带前导零)。
我知道如何手动格式化:
...
WITH MEMBER [Measures].[BusinessNumber]
AS [Products].[Product].currentmember.properties("Business Number", TYPED),
FORMAT_STRING="000000"
...
但我不喜欢在查询中修复格式的想法。我在维度编辑器中设置了相同的格式字符串 - 在属性属性中,我将FormatString设置为000000.但它似乎被忽略了。
所以最后一个问题是:有没有办法如何使用属性函数和/或关键字来获取属性的格式化值?还有其他办法吗?
相关问题是:我可以获取属性的键而不是它的值吗?或者我可以得到它的格式字符串吗?
感谢您的时间。
答案 0 :(得分:0)
获得所需内容的一种方法是在较旧的SSAS版本中也可以使用的方法:在关系方面的维度中添加列(例如,在数据源视图中或在您使用的维度表的视图中作为维度的基础,您不需要将其物理地添加到具有字符数据类型且包含格式化值的维度表中。然后将其配置为属性的名称列。
答案 1 :(得分:0)
获取密钥使用: [产品]。[产品] .currentmember.member_key