MDX StrToMember 日期范围问题

Posted

技术标签:

【中文标题】MDX StrToMember 日期范围问题【英文标题】:MDX StrToMember date range issues 【发布时间】:2021-10-01 14:26:22 【问题描述】:

查询似乎无法使日期范围起作用。我将两个日期作为参数传递,基于此,我希望根据日期范围(@FromJoinDateDate:@ToJoinDateDate)和@ADMTRANSINSpecialty@ADMTRANSINSite 检索[Sector Name] 下拉值,最后两个似乎正在工作正确。

参数示例: @FromJoinDateDate:[Sector_Join_Date].[Date].&[2020-07-29T00:00:00] @ToJoinDateDate:[Sector_Join_Date].[Date].&[2021-07-29T00:00:00]

WITH 
MEMBER [Measures].[ParameterCaption] AS [ADM_TRANS_IN].[Sector Name].CURRENTMEMBER.MEMBER_CAPTION 
MEMBER [Measures].[ParameterValue] AS [ADM_TRANS_IN].[Sector Name].CURRENTMEMBER.UNIQUENAME 
MEMBER [Measures].[ParameterLevel] AS [ADM_TRANS_IN].[Sector Name].CURRENTMEMBER.LEVEL.ORDINAL 

SELECT 
[Measures].[ParameterCaption], 
[Measures].[ParameterValue],
[Measures].[ParameterLevel]

 ON COLUMNS , 
[ADM_TRANS_IN].[Sector Name].ALLMEMBERS ON ROWS 
FROM ( SELECT ( STRTOSET(@ADMTRANSINSpecialty, CONSTRAINED) ) ON COLUMNS 
FROM ( SELECT ( STRTOSET(@ADMTRANSINSite, CONSTRAINED) ) ON COLUMNS 
FROM ( SELECT  STRTOMEMBER(@FromJoinDateDate, CONSTRAINED) : 
                  STRTOMEMBER(@ToJoinDateDate, CONSTRAINED)  ON COLUMNS 
FROM [Model])))

我感觉 StrToMember 函数在这两种情况下都可能返回 null,这就是结果与查询不匹配的原因,但是我需要使用它才能使用 range 函数。会不会也是日期格式与多维数据集中的内容不匹配?

【问题讨论】:

【参考方案1】:

检查日期维度中实际日期格式值的一种方法如下:

创建新查询 导航到您的日期维度,展开成员,选择一个日期并拖放到您的查询窗口。

这将显示您数据的确切日期格式。 下面给出了使用 AdventureWorks 示例的示例屏幕截图:

可以看出,尽管在树中显示为“2005 年 1 月 1 日”,但实际数据的格式为:20050101。

一旦您能够在数据中找到实际的日期格式,您就可以相应地构造字符串表示。

【讨论】:

以上是关于MDX StrToMember 日期范围问题的主要内容,如果未能解决你的问题,请参考以下文章

具有两个或多个日期范围的 MDX 查询

MDX 查询以对具有特定日期范围的日期维度进行分组

使用 MDX 查询从日期范围中获取特定日期的时间表

如何编写按日期范围和维度成员值进行切片的 mdx 查询

Mondrain MDX 用于日期范围之间的记录,其中开始日期和结束日期是单独的列

在日期范围之间使用 TOPCOUNT 的 MDX 查询返回带有一些空值的顶部