MDX MAX MEMBER_KEY return 错误结果

MDX MAX MEMBER_KEY return wrong result

我正在尝试确定多维数据集当前处理的最大维度键,以便我可以编写一个视图,该视图将 return 仅处理添加操作的新数据。

我遇到了几个链接,它们都显示几乎相同的内容。我稍微更改了这些示例并成功确定了我的日期维度中的最大日期键。

WITH MEMBER [Measures].[MaxKey] AS
    MAX([Dim Date].[Date SK].ALLMEMBERS
    ,STRTOVALUE([Dim Date].[Date SK].CURRENTMEMBER.MEMBER_KEY))
SELECT
    {[Measures].[MaxKey]} ON 0
FROM
    [PGL DW]

正如预期的那样,上面查询的结果是20170730

当我更改此查询以针对我的代理维度执行时,它 return 是不正确的值。

WITH MEMBER [Measures].[MaxKey] AS
   MAX([Dim Agent].[Dim Agent Key].MEMBERS
   , [Dim Agent].[Dim Agent Key].CURRENTMEMBER.MEMBER_KEY)
SELECT
   {[Measures].[MaxKey]} ON 0
FROM
   [PGL DW]

上述查询的值 return 是“-6”,这是不正确的。

如果我使用下面的 query 列出所有 Dim Agent Member Keys 我得到的值是 100000+

WITH
MEMBER [Measures].[Dim Agent Key] as [Dim Agent].[Dim Agent Key].Currentmember.Member_Key
SELECT {Measures.[Dim Agent Key]} ON axis(0),
[Dim Agent].[Dim Agent Key].Members on axis(1)
FROM [PGL DW]

Query results

Dim Agent Key 属性是维度的关键属性,其 KeyColumn 设置为 Dim Agent.Dim_AgentKey (Integer)

知道为什么在查询代理维度时查询 return 的结果不正确吗?

如果您找到 MemberValue 的最大值而不是密钥,您仍然会得到 -6 吗?

WITH MEMBER [Measures].[MaxKey] AS
   MAX([Dim Agent].[Dim Agent Key].[Dim Agent Key].MEMBERS
   , [Dim Agent].[Dim Agent Key].CURRENTMEMBER.MEMBERVALUE)
SELECT
   {[Measures].[MaxKey]} ON 0
FROM
   [PGL DW];