0

我有一个表达式字符串,它使用年份和日历月的维度从 SSAS 中提取年份。我想修改它,使其自动默认为当前年份。

在此处输入图像描述

在此处输入图像描述

[Allegation Closed Date].[Year].&[2013]

一个更难但几乎相同的例子是我想默认为当前年份但使用预设的月份。在下面的示例中,它始终是当年的第一个月,但可以设置为任何月份。我遇到的问题是我不能默认为当前年份,因为此信息是从表字段中提取的。

[Allegation Closed Date].[Calendar Month].&[2013-01]

我在想我可以做这样的事情并且它会起作用:

[Allegation Closed Date].[Year].&[Year(Now())]

我在上面的字符串上尝试了几种不同的变体,但都没有奏效。我还尝试在名为 currentyear 的数据集中创建一个计算字段,然后使用以下命令调用该字段:

[Allegation Closed Date].[Year].&[CurrentYear]

尝试了下面的方法,但没有奏效,所以我想我可以重新设计查询以过滤掉所有大于当前年份的年份。这是查询设计器的屏幕截图。

在此处输入图像描述

该查询有点难以阅读,它是:

WITH MEMBER [Measures].[ParameterCaption] AS [Allegation Closed Date].[Year].CURRENTMEMBER.MEMBER_CAPTION MEMBER [Measures].[ParameterValue] AS [Allegation Closed Date].[Year].CURRENTMEMBER.UNIQUENAME MEMBER [Measures].[ParameterLevel] AS [Allegation Closed Date].[Year].CURRENTMEMBER.LEVEL.ORDINAL SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS , [Allegation Closed Date].[Year].ALLMEMBERS ON ROWS FROM ( SELECT ( { [Allegation Status].[Allegation Status].&[Closed] } ) ON COLUMNS FROM [Allegation Analysis])

所以我想出了要输入的内容,所以它会默认为当前年份,它是:

="[Allegation Closed Date].[Year].&["+CSTR(Year(Today))+"]"

仍然必须弄清楚一个月要输入什么,但至少我知道我在正确的轨道上。

任何帮助仍然非常感谢如何格式化为年月。

4

1 回答 1

1

如果您指定一个表达式,那么它必须是 VB.NET 表达式,而不是 MDX。

=Now.Year

将始终返回当前年份。

如果要使用 MDX 表达式,则需要设置一个执行该 MDX 作为其查询的数据集,然后将参数设置为“从查询中获取值”并选择新数据集。

于 2013-04-17T18:47:13.453 回答