You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MDX技术问询:日期维度显示键值与获取最大日期对应金额

针对你遇到的两个MDX问题,我来逐一给出实用的解决方案:

问题1:在不修改维度属性设置的情况下,显示日期维度的键值

你不需要修改维度的属性配置,直接通过MDX的MEMBER_KEY属性就能获取日期成员的键值。这里提供两种实现方式:

方式1:新增计算成员展示键值(推荐)

这种方式可以同时保留原有的日期名称和键值,方便对比查看:

WITH 
  MEMBER [Measures].[Ship Date Key] AS 
    [Ship Date].[Date].CurrentMember.MEMBER_KEY
SELECT 
  {[Measures].[Internet Sales Amount], [Measures].[Ship Date Key]} ON COLUMNS,
  NON EMPTY [Ship Date].[Date].[Date] ON ROWS
FROM [Mycube]

方式2:直接将键值作为行标签

如果你希望行轴直接显示键值而非名称,可以修改行轴的表达式:

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  NON EMPTY [Ship Date].[Date].[Date].MEMBER_KEY ON ROWS
FROM [Mycube]

问题2:获取最大日期对应的[Internet Sales Amount]

你的原查询没有生效,是因为Filter的条件逻辑有误——你只是取出了最大日期的键值,但没有做相等判断来筛选成员。这里有两种更可靠的实现方式:

方式1:用Tail直接取最后一个非空日期(简洁高效)

如果你的日期维度是按时间升序排列的,Tail函数取到的最后一个非空成员就是最大日期:

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  Tail(
    NONEMPTY([Ship Date].[Date].[Date], [Measures].[Internet Sales Amount]),
    1
  ) ON ROWS
FROM [Mycube]

方式2:通过最大键值筛选成员(兼容任意排序)

如果不确定维度的排序规则,可以先计算最大日期的键值,再筛选对应的成员,确保结果准确:

WITH 
  -- 计算所有有销售额的日期中的最大键值
  MEMBER [Measures].[Max Ship Date Key] AS 
    Max(
      NONEMPTY([Ship Date].[Date].[Date], [Measures].[Internet Sales Amount]),
      [Ship Date].[Date].CurrentMember.MEMBER_KEY
    )
  -- 筛选出键值等于最大键值的日期成员
  SET [Max Sales Date] AS 
    Filter(
      NONEMPTY([Ship Date].[Date].[Date], [Measures].[Internet Sales Amount]),
      [Ship Date].[Date].CurrentMember.MEMBER_KEY = [Measures].[Max Ship Date Key]
    )
SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  [Max Sales Date] ON ROWS
FROM [Mycube]

内容的提问来源于stack exchange,提问作者sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:15:01