将日期范围调整为MDX中的现有成员

时间:2018-08-13 17:16:32

标签: reporting-services ssas mdx

我有一个包含DateFromDateTo参数的报告。两者都是日历-您可以选择具有日期精度的日期。

报告中的数据集之一是MDX。我使用strtoset为其输入日期范围,并且strtoset的参数表达式变为:

="([Test Run].[Complete Date Hierarchy By Month].[Date].&[" & Format(Parameters!FromDate.Value, "yyyy-MM-dd") & "T00:00:00]:[Test Run].[Complete Date Hierarchy By Month].[Date].&[" & Format(Parameters!ToDate.Value, "yyyy-MM-dd") & "T00:00:00])"

问题是,如果开始日期和结束日期不是维中的成员,则查询将返回所有null。

是否可以将用户提供的日期调整为维度中最接近的现有成员(向前(对于“发件人”)还是向后(对于“发件人”)?

编辑:我现在正在尝试使用过滤器在[自:至]范围内生成一组日期值。它的工作原理是不会出错,但是结果集与strtoset()的结果集不同。现在,Where子句中包含以下内容:

filter([Test Run].[Complete Date Hierarchy By Month].[Date],
    [Test Run].[Complete Date Hierarchy By Month].currentmember.member_value >= CDate('2017-10-01') and
    [Test Run].[Complete Date Hierarchy By Month].currentmember.member_value < CDate('2018-07-01'))

我得到的数字略有不同。怎么可能?

1 个答案:

答案 0 :(得分:0)

FILTER([Test Run].[Complete Date Hierarchy By Month].[Date],
[Test Run].[Complete Date Hierarchy By Month].[Date].CurrentMember.Member_Value >= CDate('2018-01-01') and
[Test Run].[Complete Date Hierarchy By Month].[Date].CurrentMember.Member_Value < CDate('2018-04-01'))