MDX MAX MEMBER_KEY返回错误的结果

时间:2017-08-15 08:37:54

标签: sql-server-2008 mdx ssas-2008

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

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

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

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

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]

上述查询返回的值为" -6"这是不正确的。

如果我使用以下Dim Agent Member Keys列出所有query,我会得到值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)

在查询代理维度时,知道查询返回错误结果的原因吗?

1 个答案:

答案 0 :(得分:0)

如果你发现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];